frADOQuery. Запрос из хранимой процедуры

отредактировано 11:34 Раздел: FastReport 2.xx VCL
В отчете сделал форму диалога, на нее положил 3 frADOQuer-я с коннектом к MS SQL Server на форме приложения. Все они вида "exec stored_proc_name :param1, :param2, ...". Два работают нормально, один не хочет: - "commandtext does not return a resul set". По большому счету разница между ними вот в чем:

Структура работающих Quer-ей:
create table #t1(...)
заполнение таблицы
select ... from #t1
drop #t1

Структура Quer-я, который работать не хочет:
create table #t1(...)
заполнение таблицы
create table #t2(...)
insert #t2 ... select ... from #t1
другие дела...
drop #t1
select ... from #t2
drop #t2

Зачем такой изврат, лучше не спрашивайте, надо! Сами знаете как бывает.
Нерабочий Query пашет, если в параметрах прописываю константы. Но как только константы заменю на ":param_name", выдает ошибку. В Query.Params после правки текста SQL заглядывал, параметры выставлял, знаю, что иногда слетают.

Может есть какие мысли?

Комментарии

  • отредактировано 11:34
    Однако сам дурак! В неработающей процедуре была одна маленькая проверочка, если она не выполнялась - return. Ошибка появлялась когда FastReport делал вызов TADOQuery.GetFieldNames(). Получалось так:
    Когда в параметрах я выставлял константу, проверка проходила, процедура отрабатывала до конца и возвращала RowSet из которого GetFieldNames и извлекал имена полей. Когда же я константу заменял на именованный параметр, то на этапе вызова GetFieldNames этот параметр давал 0 или NULL, х.з. Проверка не проходила и процедура возвращала пустоту, о чем и свидетельствовала ошибка.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.