Здравствуйте, уважаемые знатаки!
Краткая предистория:
Помогите пожалуйста, кто может, уже неделю ломаю голову. Недавно перешел на Delphi 2010 (Embarcadero RAD Studio 2010), так сложились обстоятельства, до этого был заядлым пользователем Delphi 7. Вот уже несколько лет в качестве СУБД использую MySQL и для работы с с ним - компоненты ZEOS. Все было хорошо, пока работал в Delphi 7.
Собственно теперь о моей проблеме:
Установил я Delphi 2010 и ZEOSDBO 7.0.0 Alpha, другой версии компонент для этой версии Delphi на сегодняшний день не существует. Все хорошо установилось, все без ошибок. Но когда я начинаю выполнять запросы, то компоненты начинают ругаться, говорят что я использую неверный синтаксис запроса. Что я делаю не так?
Код:
Code
With ZQ_New do
begin
SQL.Clear;
SQL.Add('INSERT INTO journal_akt_sverki(n_doc, d_doc, id_vendor, id_mag, summ_sf, summ_posle_nakr, type_oper)');
SQL.Add('VALUE(:n_doc, :d_doc, :id_vendor, :id_mag, :summ_sf, :summ_posle_nakr, :type_oper)');
ParamByName('n_doc').AsString :=cxTxt_N_SchFact.Text;
ParamByName('d_doc').AsDate := cxDateEdit_Date_SchFakt.Date;
ParamByName('id_vendor').AsInteger := cxDBLCB_Vendors.EditValue;
ParamByName('id_mag').AsInteger := idMagazina;
ParamByName('summ_sf').AsFloat := cxSpinEdit_Summ_SchFakt.Value;
ParamByName('summ_posle_nakr').AsFloat := cxSpinEdit_SummSF_PosleNakrutki.Value;
ParamByName('type_oper').AsInteger := 1;
ExecSQL;
end;
Ошибка:
—————————————-
Debugger Exception Notification
—————————————-
Project Accounting.exe raised exception class EZSQLException with message 'SQL Error: 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 ' '2011-03-29', 1, 1, 5000, 7000, 1)' at line 1'.
—————————————-
Break Continue Help
—————————————-
Как видно из этой ошибки, куда-то деется значение параметра :n_doc.
Я перечитал все мануалы по синтаксису в MySQL на запрос INSERT, перечитал кучу форумов, ничего не нашел, провбовал разные вариации конструкции, вместо VALUE писал VALUES. В system32 кидал libmysql.dll из папки bin MySQL сервера, так же кидал этот файл в папку проекта - ничего не помогает.
В Delphi 7 у меня таких проблем небыло, 4 года работаю с этим компонентом. СУБД я не менял на другую версию, после последнего использования с Delphi 7, к стати версия СУБД - MySQL 5.1.
Запрос SELECT работает отлично, без проблем. С запросом UPDATE та же проблема, что и с INSERT.
Буду очень признателен и примного блогадарен, если Вы, уважаемые профессионалы мне поможете. Пока склоняюсь к тому, чтобы перейти на Delphi 7, чего не очень хочется, потому-что проект придется переписывать.
Конструктор запросов выдает запрос следующим образом:
Code
INSERT INTO
journal_akt_sverki
(
n_doc,
d_doc,
id_vendor,
id_mag,
summ_sf,
summ_posle_nakr,
type_oper
)
VALUE
(
:n_doc,
:d_doc,
:id_vendor,
:id_mag,
:summ_sf,
:summ_posle_nakr,
:type_oper
)
Еще раз зранее спасибо!