MySQL C コネクタを使用して Visual C++ で書いています。
このクエリを StringCchPrintf して実行し、結果を取得すると、問題ありません。
SELECT orders.id,
orders.get_date,
orders.work_date,
cars.car_num,
cars.car_mark,
customers.surname,
customers.name,
customers.telephone,
workers.login,
orders.paid,
orders.paid_dead_line
FROM `orders`, `cars`, `customers`, `workers`
WHERE cars.customer_id = customers.id AND
orders.car_id = cars.id AND
orders.customer_id = customers.id AND
orders.worker_id = workers.id AND
DATE(get_date) LIKE DATE('%d-%d-%d')
ORDER BY get_date ASC;
以下のクエリを StringCchPrintf すると、プログラムはフリー関数 [1] を呼び出しておらず、もう一度ボタンを押すとアプリケーションがクラッシュします。
SELECT orders.id,
orders.get_date,
orders.work_date,
cars.car_num,
cars.car_mark,
customers.surname,
customers.name,
customers.telephone,
workers.login,
orders.paid,
orders.paid_dead_line
FROM `orders`, `cars`, `customers`, `workers`
WHERE orders.paid IN ('0', '2', '3') AND //1 == paid
cars.customer_id = customers.id AND
orders.car_id = cars.id AND
orders.customer_id = customers.id AND
orders.worker_id = workers.id
ORDER BY get_date ASC;
[1] 後に MessageBox を配置while ((row = mysql_fetch_row(result)))
しましたが、メッセージ ボックスが表示されないため、クリーニング関数が呼び出されず、2 回目のボタン プッシュでプログラムがクラッシュします。データベースからデータを取得して表示するのは、分離された void 関数です。
私の質問:
クエリ構文が悪いとプログラムがクラッシュする可能性がありますか?
たぶん、プログラムはクリーニングの前にvoid関数から出ています(奇妙な)?
よろしく、デビッド