Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

SQL запрос с параметром   Найти похожие ветки 

 
Bayram Annanurov   (2002-08-26 10:29) [0]

Здрапствуйте.
Для ADOQuery1 выполняется SQL запрос с параметром:

begin
DShablon := CHR(39)+"text"+CHR(39); { определение значения шаблона }

ADOQuery1.Parameters.Clear; { определение параметра компонента ADOQuery1}
ADOQuery1.Parameters.Add;
ADOQuery1.Parameters[0].DataType := ftString;
ADOQuery1.Parameters[0].Name := "Shablon";
ADOQuery1.Parameters[0].Direction := pdInput;
ADOQuery1.Parameters[0].Value:= DShablon;

ADOQuery1.Close;
ADOQuery1.SQL.Clear; { определение SQL запроса}
ADOQuery1.SQL.Add("SELECT TOP 20");
ADOQuery1.SQL.Add("NAME");
ADOQuery1.SQL.Add("FROM Table01");
ADOQuery1.SQL.Add("WHERE NAME = : Shablon;");

ADOQuery1.Open;
end;


Проблема именно в параметре: если его выбросить, то все проходит гладко.
Сообщение об ошибке:
The application has impropertly defined a Parameter object.
Спасибо.


 
ivv ©   (2002-08-26 10:40) [1]

ADOQuery1.SQL.Add("SELECT TOP 20");
ADOQuery1.SQL.Add("NAME");
ADOQuery1.SQL.Add("FROM Table01");
ADOQuery1.SQL.Add("WHERE NAME = :Shablon");


 
Bayram Annanurov   (2002-08-26 11:09) [2]

Извините за опечатку


 
ZrenBy ©   (2002-08-26 11:11) [3]

По-моему, в параметрах не надо использовать Chr(39)


 
ЮЮ ©   (2002-08-27 04:04) [4]

Зачем вручную делать Parameters[0]? Изменение ADOQuery1.SQL приводит к автоматическому преопределению Parameters. А вот затем надо сделать
ADOQuery1.Parameters[0].DataType := ftString;


 
Bayram Annanurov   (2002-08-27 10:35) [5]

Здравствуйте.
ЮЮ, Вы предлагаете выбросить вообще вот этот кусок:

ADOQuery1.Parameters.Clear; { определение параметра компонента ADOQuery1}
ADOQuery1.Parameters.Add;
ADOQuery1.Parameters[0].DataType := ftString;
ADOQuery1.Parameters[0].Name := "Shablon";
ADOQuery1.Parameters[0].Direction := pdInput;
ADOQuery1.Parameters[0].Value:= DShablon;

??????

В этом случае Delphi считает, что
Line4: Incorrect syntax near "Shablon".Process stoped.
хотя весь syntax очен даже correct.



 
Val ©   (2002-08-27 10:39) [6]

определите сначала текст запроса, затем параметры.


 
ЮЮ ©   (2002-08-27 10:51) [7]

Только сейчас из IDE, всё замечательно работает

ADOQuery1.SQL.Text:="select * from tblJurnal where TurAgent=:Turagent";
ADOQuery1.Parameters[0].Value:=Edit1.Text;
ADOQuery1.Open;


 
Bayram Annanurov   (2002-08-27 11:06) [8]

ЕСТЬ!!!
Parameters.Add на самом деле лишнее (ЮЮ).
Достаточно после запроса (Val) определить значение параметра:
ADOQuery1.Parameters[0].Value := DShablon;

Спасибо всем !!!!!!!!!!!



Страницы: 1 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-50773
Micah'GF
2002-08-31 22:39
2002.09.16
Как изменить размер формы?


1-50763
d_oleg
2002-09-04 16:01
2002.09.16
Canvas.TextOut - выравнивание


6-50888
[nex] aka Counterfeiter
2002-07-12 01:02
2002.09.16
ServerSocket nonBlockingThread


1-50664
R_F$29{n}xp
2002-09-04 13:51
2002.09.16
Мастера подскажите как можно сохранить компонент TTree View?


7-50992
Khov
2002-07-03 09:50
2002.09.16
Имя пользователя, работающего с файлом