Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-50671
a413
2002-09-04 16:22
2002.09.16
Как вызвать функцию в DLL из EXE?


14-50961
blackweber
2002-08-21 19:36
2002.09.16
Присуждают ли Нобелевскую премию в области математики.


1-50679
Guzz
2002-09-04 19:53
2002.09.16
Вопрос по активизации форм


1-50776
DmitryMN
2002-09-05 13:38
2002.09.16
Ошибка вызова процедуры COM-сервера


14-50916
Мася
2002-08-21 09:11
2002.09.16
Автозагрузка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский