Есть баг, который не получается пока отловить. Данные внутри программы перепроверены - всё ок. Баг либо в процедуре БД, либо при передаче параметров из программы в процедуру БД или обратно. Процедура явно работает, тк возвращает названия полей таблицы, но результат работы - пуст, строк нет.
Пользуюсь IBExpert, можно в нём как-то посмотреть запросы/ответы к/из процедурам БД из рабочей программы? Как вообще можно узнать какие точно данные получила БД?
=====================
Попутно напишу как выглядит запрос в БД, может будут корректировки:
Код:
procedure TfZapros.Zapros(ProcedureName,ProcedureList:string);
begin
With dsZapros do begin
close;
SQLs.SelectSQL.Text:='SELECT * FROM '+ProcedureName+' (:LIST)';
Params[0].Value:=ProcedureList;
open;
end;
Код в БД по разделению списка выглядит так:
Код:
begin
while (i <= char_length(lst)) do begin
if (substring(lst from i for 1) = ',') then begin
if (i > j) then
id = trim(leading from substring(lst from j for i - j));
else
id = null;
if (id is not null) then suspend;
j = i+1;
end
i = i+1;
end
if (i > j) then
id = trim(leading from substring(lst from j for i - j));
else
id = null;
if (id is not null) then suspend;
end
Приводить саму процедуру выборки не буду, тк в ней без таблиц и понимания программы разобраться невозможно.