Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > параметры в sqlquery


Автор: 1Andrey1 29.9.2010, 21:34
В общем вопрос в следующем. Нужно выполнить простенький запрос, использующий параметры. Я скорее всего гдето торможу, но чтото пока никак не могу понять как создать эти параметры у sqlquery в рантайме.

пробовал так:
Код

newsquery.Params.CreateParam(ftWideString,'NewsName',ptUnknown);
newsquery.Params.CreateParam(ftWideString,'NewsText',ptUnknown);
newsquery.Params.CreateParam(ftWideString,'NewsImg',ptUnknown);

newsquery.ParamByName('NewsName').Value:=newsname;
newsquery.ParamByName('NewsText').AsString:=newstext;
newsquery.ParamByName('NewsImg').Value:=newsimg;

newsquery.Active:=false;
newsquery.SQL.Clear;
newsquery.SQL.Add('INSERT INTO news (name, text, image) VALUES(:NewsName,:NewsText,:NewsImg');
newsquery.ExecSQL();


и так:
Код

    newsquery.SQL.Add('INSERT INTO news (name, text, image) VALUES(:NewsName,:NewsText,:NewsImg');
newsquery.Params.ParseSQL(newsquery.SQL.Text,true);
newsquery.ParamByName('NewsName').Value:=newsname;
newsquery.ParamByName('NewsText').AsString:=newstext;
newsquery.ParamByName('NewsImg').Value:=newsimg;
newsquery.ExecSQL();


и в одном и в другом случае получаю "No value for parameter 'NewsName' ". Что я делаю не так?

Автор: Тиль 30.9.2010, 09:23
попробуй выведи в сообщении какие значения этим параметрам присваиваются

Автор: Frees 30.9.2010, 09:47
в запросе скобки не хватает

Автор: 1Andrey1 1.10.2010, 10:13
Frees, Скобка потерялась при копировании на форум, дело не в ней.

Тиль, если делаю 

Код

showmessage(newsquery.ParamByName('NewsText').AsString)


то получаю то же самое "No value for parameter 'NewsName' "


В общем я натыкал мышью те же параметры в дизайнтайме, так работает...

Автор: cat512 1.10.2010, 11:33
Возможно надо определить тип параметра (input output):
Код

newsquery.Params.CreateParam(ftWideString,'NewsName',ptUnknown);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)