![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос [D5, MSSQL]
Марат © (2004-04-22 06:21:00)Здравствуйте, мастера. Вопрос такой. Есть массив A: array [0..50] of string;
Количество заполненных элементов Cou=3.
Запрос:
with query1 do begin
sql.clear;
sql.add('select ...'+
'where ...');
for i:=0 to Cou-1 do begin
sql.add('and AT.Textovka='+A[i]+' ');
end;
sql.add('order by ...');
open;
first;
end;
После выполнения дается RecordCount=0 хотя это неправда.
Посмотрите, пожалуйста. Может быть вы увидите ошибку или подскажете какой-нибудь другой путь для реализации данного запроса.
Марат (2004-04-22 08:17:00) [1]Попробовал вот так:
for i:=0 to Cou-1 do begin
with query1 do begin
sql.add('select ...'+
'where ...');
sql.add('and AT.Textovka=:pAnsw');
sql.add('order by ...');
ParamByName('pAnsw').asstring:=A[i];
open;
first;
end;
end;
Не получается. Вытаскивается весь список и не срабатывает order by.
Марат (2004-04-22 08:11:00) [2]Дает ошибку в этой строке.
Вованчик (2004-04-22 07:37:00) [3]попробуй добавить еще по два опострофа, чтобы получилось так:
=''' + А[..] + ''''
Марат (2004-04-22 06:51:00) [4]Точно! Но я пробовал и так:
sql.add('and AT.Textovka='+A[0]+' ');
т.е. без всяких for. Не получилось.
guest_Dmitry (2004-04-22 06:36:00) [5]Может все-таки
AT.Textovka= 'ff' orAT.Textovka= 'gg' orAT.Textovka='dd' ?
Марат (2004-04-22 06:33:00) [6]A мне нужно ... and AT.Textovka= 'ff' and AT.Textovka= 'gg' and AT.Textovka='dd'
guest_Dmitry (2004-04-22 06:28:00) [7]Так у тебя в результате запрос получится ... and AT.Textovka= a[0] and AT.Textovka= a[1] and AT.Textovka=a[2]