powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Параметры в ADOQuery
9 сообщений из 9, страница 1 из 1
Параметры в ADOQuery
    #32346933
Sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть вопроса:

есть текст запроса:

select something from somewhere
where anybody > :KakojtoParameter

Если этот текст присвоить TQuery.SQL.Text, то сразу после этого
мы увидим, что свойство Query.Params.Count = 1.

Если же аналогично сделать с ADOQuery, то получим
TADOQuery.Parameters.Count = 0

Я чего-то не догоняю или BDEшные запросы более продвинуты,
чем ADOшные?

Короче, как в ADOQuery по тексту запроса определить, сколько
параметров в нем (а еще лучше - и каких)?

Спасибо.
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32347079
AlexB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADOQuery.SQL.Text = ....
ADOQuery.Prepared;
=>TADOQuery.Parameters.Count > 0
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348178
Sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не помогает!!!
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348185
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ParamCheck = true
_____________
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348259
Sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Paramcheck и до того был True, ведь это значение по умолчанию.

Пробовал и Parameters.Refresh - тоже безрезультатно.
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348267
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм
ты покажи код
как ты это делаешь
_____________
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348292
Sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS := TADOQuery.Create(nil);
DS.SQL.Text := ...;
DS.ConnectionString := ...;
for i := 0 to DS.Parameters.Count - 1 do begin
//здесь обрабатываю параметры.
end;
DS.Open;

Если нет параметров (т.е. строк типа :Param), то все отлично.
Если есть параметры, то DS.Parameters.Count = 0 и из-за этого
Open, конечно, ругается...

Если заменить TADOQuery на TQuery, DS.Parameters.Count > 0 и все получается. Но в том-то и дело, что надо ADO.
...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348565
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поменяй очередность
сначала инициализируй соединение а потом текст запроса
и все будет ОК
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  DS := TADOQuery.Create(nil);
  DS.ConnectionString := 'Provider=SQLOLEDB.1;.....';
  DS.SQL.Text := 'select * from Users where UserID = :UserID';
  for i :=  0  to DS.Parameters.Count -  1  do
    begin
     DS.Parameters[ 0 ].Value :=  1 ;
    end; 
  DS.Open;
  DS.Free;

...
Рейтинг: 0 / 0
Параметры в ADOQuery
    #32348639
Sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

И че я сразу не додумался?..
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Параметры в ADOQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]