Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: Ошибка :(
Ошибка :(
Posted: 2008/04/10 09:49
 
Доброго времени дня
Есть следующий фрагмент рабочего кода (Delphi 2006, AnyDAC 1.12.2, MySQL)

procedure GetVehicleData(id: integer);
begin
with MainForm, ADQuery do begin
SQL.Clear;
SQL.Text := format('SELECT * FROM vehicle WHERE id = %d;', [id]);
Open;
...................

Меняю у ADQuery FetchOptions/RecordCountMode с cmVisible на cmTotal и после этого в строчке Open; получаю

First chance exception at $76D642EB. Exception class EMySQLNativeException with message '[AnyDAC][Phys][MySQL][LIBMYSQL] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
) A' at line 2'. Process SmartTracer.exe (6408)

Что за символы ") A" в строчке 2??? откуда???

Заранее огромное спасибо
Re:Ошибка :(
Posted: 2008/04/10 22:55
 
Какая версия MySQL ?
Re:Ошибка :(
Posted: 2008/04/16 08:08
 
MySQL 5.0.45

в принципе проблему удалось обойти следующим образом
.........
ADQuery.Open;
if ADQuery.EOF then Exit;
ADQuery.FetchAll;
............

Post edited by: ReniLV, at: 2008/04/16 08:09
Re:Ошибка :(
Posted: 2008/04/17 02:01
 
Только сейчас заметил что у вас на конце SQL команды присутствует ';'. Удалите его, он по-видимому и приводит к ошибке.
Re:Ошибка :(
Posted: 2008/04/17 04:42
 
уже обратил внимание на иногда странную работу при использовании ';'

выполнение запроса приведет к ошибке
SQL.Text := 'SELECT TimeZoneCorrection FROM dbData;';

но втоже время стоит добавить пробел перед ';', как все будет работать замечательно.
SQL.Text := 'SELECT TimeZoneCorrection FROM dbData ;';

Как я понимаю в тексте SQL запроса крайне желательно опускать закрывающую точку с запятой.

Огромное спасибо за разъяснения.

Diman wrote:
Только сейчас заметил что у вас на конце SQL команды присутствует ';'. Удалите его, он по-видимому и приводит к ошибке.