Ошибка табличного параметра

Обсуждение возникших проблем, предложений и ошибок SDAC компонентов
Ответить
ABazhin
Сообщения: 2
Зарегистрирован: Пн 30 ноя 2015 13:54

Ошибка табличного параметра

Сообщение ABazhin » Чт 21 апр 2016 14:38

Добрый день
Есть запрос вида

Код: Выделить всё

select * from table 
where 
id in (SELECT table_id FROM exp_1 WHERE po_id IN (SELECT id FROM :po_ids)) or 
id in (SELECT table_id FROM exp_2 WHERE po_id IN (SELECT id FROM :po_ids))
Заполняем табличный параметр

Код: Выделить всё

msquery1.ParamByName('po_ids').AsTable:= MSTableData1.Table;
Открываем запрос. Ошибка.
Аналогичное поведение при

Код: Выделить всё

select * from table 
where 
id in (SELECT table_id FROM exp_1 WHERE po_id IN (SELECT id FROM :po_ids1)) or 
id in (SELECT table_id FROM exp_2 WHERE po_id IN (SELECT id FROM :po_ids2))
Обоим параметрам присваиваем одну и туже MSTableData

Код: Выделить всё

msquery1.ParamByName('po_ids1').AsTable:= MSTableData1.Table;
msquery1.ParamByName('po_ids2').AsTable:= MSTableData1.Table;
Без ошибок отрабатывает только когда табличный параметр используется в запросе 1 раз и ему присвоена индивидуальная MSTableData. Т.е. для второго запроса

Код: Выделить всё

msquery1.ParamByName('po_ids1').AsTable:= MSTableData1.Table;
msquery1.ParamByName('po_ids2').AsTable:= MSTableData2.Table;
Это баг или так и задумано?

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Re: Ошибка табличного параметра

Сообщение AndreyZ » Ср 27 апр 2016 09:15

Мы воспроизвели описанное вами поведение и будем его исследовать. Мы сразу сообщим вам как только получим какие-либо результаты.

Ответить