![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача параметра в 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]
Нет