0

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関数から出ています(奇妙な)?

よろしく、デビッド

4

1 に答える 1

1

ANDWHERE 句の最後の行に余分なものがあります。この行を変更します。

orders.worker_id = workers.id AND 

これに:

orders.worker_id = workers.id
于 2013-06-10T15:34:08.313 に答える