Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передача параметра в TIBSQL [D6, IB6.x]


Жук ©   (2003-12-18 13:53:00) 

Запрос :
select *
from table1
where field1 in (:param)

Можно ли передать в :param массив целых чисел ?


MV   (2003-12-18 14:47:00) [1]

Предлагаю передавать строку в сторед процедуру, используя новую фичу FB1.5 - динамические запросы. Хотя без разницы - только время на передачу запроса по сети сократится. Да клиентский код чуть компактнее будет.


Жук   (2003-12-18 14:26:00) [2]

:-)))
Так я тоже умею...


MV   (2003-12-18 14:24:00) [3]

Вай, что-то я неудачно кусок кода из проги выдрал. Сейчас поправлю:

var
Str_Orders_Id : string;
...
Str_Orders_Id := "";

if Length(Param) > 1500 then begin
// Ограничение парсера на сервере
ShowMessage("Ограничение: должно быть выбрано не более "+
#10+"1500 записей!");
exit;
end;

for I := Low(Param) to High(Param) do
if Str_Orders_Id <> "" then
Str_Orders_Id := Str_Orders_Id + ",";
Str_Orders_Id := Str_Orders_Id + param[i];
end;
MyQuery.SQL.Text := Format("select * from MyTable where id in """" %s """"", [Str_Orders_Id]);

end;


MV   (2003-12-18 14:14:00) [4]

Только динамически формирвать SQL - строку, типа
var
if Str_Orders_Id : string;
...
if Str_Orders_Id := "";

if Length(Param) > 1500 then begin
// Ограничение парсера на сервере
ShowMessage("Ограничение: должно быть выбрано не более "+
#10+"1500 записей! Попробуйте выполнить экспортирование частями.");
exit;
end;

for I := Low(Param) to High(Param) do begin if Str_Orders_Id <> "" then
Str_Orders_Id := Str_Orders_Id + ",";
Str_Orders_Id := Str_Orders_Id + param[i];
end;
MyQuery.SQL.Text := Format("select * from MyTable where id in """" %s """"", [Str_Orders_Id]);

end;


JibSkeart   (2003-12-18 14:09:00) [5]

ну если пофантазировать :)

....Value := "1,2,3,4";
в любом случае параметр нужно будет формировать :)


Жук   (2003-12-18 14:00:00) [6]


> MV (18.12.03 13:59) [3]

Что "да" ?
В виде строки, это понятно, а вот, как параметр...


MV   (2003-12-18 13:59:00) [7]

Да


JibSkeart   (2003-12-18 13:56:00) [8]

А если ввиде строки ?


MV   (2003-12-18 13:54:00) [9]

Нет


Наверх

Титульная страница Поиск, карта сайта Написать письмо