Я пишу в Visual C++, используя MySQL C Connector.
Когда я 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)))
, и окно сообщений не отображается, поэтому функции очистки не вызываются, а при нажатии второй кнопки программа вылетает. Получение данных из базы данных и отображение находятся в отдельной функции void.
Мои вопросы:
Неправильный синтаксис запроса может вызвать сбой программы?
Возможно, программа выходит из функции void перед очисткой (странно)?
С уважением, Дэвид