Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Параметры в ADOQuery / 9 сообщений из 9, страница 1 из 1
08.12.2003, 18:18
    #32346933
Sol
Sol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в ADOQuery
Суть вопроса:

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

select something from somewhere
where anybody > :KakojtoParameter

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

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

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

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

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

Пробовал и Parameters.Refresh - тоже безрезультатно.
...
Рейтинг: 0 / 0
09.12.2003, 17:30
    #32348267
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в ADOQuery
Хмм
ты покажи код
как ты это делаешь
_____________
...
Рейтинг: 0 / 0
09.12.2003, 17:49
    #32348292
Sol
Sol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в ADOQuery
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
10.12.2003, 07:44
    #32348565
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в ADOQuery
поменяй очередность
сначала инициализируй соединение а потом текст запроса
и все будет ОК
Код: 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
10.12.2003, 09:32
    #32348639
Sol
Sol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в ADOQuery
Спасибо!

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


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