(?) - Параметр запроса Sql
Listopad
Хабаровск
Здравствуйте, я столкнулась с проблемой.
Я создаю запрос SQL через мастер создания запросов (если он конечно так называется):
select [таблица].[поле1] from [таблица] where [таблица].[поле2] in (?)
Далее, следуя шагам мастера, создаю параметр типа VarChar(255), параметр Expression = [ПараметрОтчета], где [ПараметрОтчета] - параметр отчета, который заполняется программно:
string param = "значение1, значение2";
Report.SetParametrValue([ПараметрОтчета],param);
По идее (ну, во всяком случае, я так думаю), запрос должен превратиться при выполнение в следующую строку:
select [таблица].[поле1] from [таблица] where [таблица].[поле2] in ("значение1, значение2")
Но он не работает.
Вот если одно значение передать: param = "значение1", тогда все ок...
В чем проблема? Подскажите, пожалуйста...
Я создаю запрос SQL через мастер создания запросов (если он конечно так называется):
select [таблица].[поле1] from [таблица] where [таблица].[поле2] in (?)
Далее, следуя шагам мастера, создаю параметр типа VarChar(255), параметр Expression = [ПараметрОтчета], где [ПараметрОтчета] - параметр отчета, который заполняется программно:
string param = "значение1, значение2";
Report.SetParametrValue([ПараметрОтчета],param);
По идее (ну, во всяком случае, я так думаю), запрос должен превратиться при выполнение в следующую строку:
select [таблица].[поле1] from [таблица] where [таблица].[поле2] in ("значение1, значение2")
Но он не работает.
Вот если одно значение передать: param = "значение1", тогда все ок...
В чем проблема? Подскажите, пожалуйста...
Комментарии
у меня тоже куча проблем с OleDB
протестили на Microsoft SQL и все на этом, остальные СУБД их не интересуют, не партнеры же.
У меня тоже такая мысль возникала. Печально, конечно...
Хотя, возможно, такие мысли возникают от незнания.
да и тут помочь никто не может.
Решил выйти из проблемы следующим образом:
форму рисую в студии на ней формирую все необходимые данные для отчета, вставляю в DataSet и передаю в отчет.
если интересно могу куски кода скинуть.
с этими экспериментами я слишком много времени потерял
Передавать множественные значения для IN с помощью параметра нельзя. Параметр может передать только одно значение. В Вашем случае это будет "значение1, значение2", а надо - "значение1", "значение2". Выход - формировать текст SQL вручную, вот так:
TableDataSource data = Report.GetDataSource("my_datasource") as TableDataSource;
data.SelectCommand = ...
этот код надо выполнить после загрузки отчета, и до его запуска.
В данном случае это верно
Спасибо огромное. Вроде бы заработало. ) Ура! )))
Есть еще вопрос не по теме - у меня почему то не полностью печатаются страницы формата А3 - печататется только заголовок страницы и первая строка бэнда данные. В чем проблема?
Да, в окне просмотра все нормально, А4 печатает, а вот А3 - нет...
Странно... Принтер: HP LaserJet 8150.
Пришлите еще раз, пожалуйста - вместе с файлом отчета .frx
Не вижу смысла слать файл .frx - все равно работать не будет, у меня же там идет связь с БД...
Так что выслала только .fpx. Проверьте его, он у меня так и не печатается...
Есть БД Access. В ней есть связь с таблицей из другой БД. Почему я не могу использовать эту связанную таблицу в качестве источника для отчета?
Да, у нас печатается нормально. Из чего делаю вывод, что барахлит конкретно эта связка "программа-принтер". Я, правда, не понял - что именно печатается неправильно - было бы неплохо взглянуть, как выглядит распечатка того отчета, что Вы мне посылали.
Способ описан в руководстве пользователя:
http://fast-report.com/documentation/UserM...passvalueto.htm
Это невозможно, в запросе можно использовать таблицы одной базы данных.
Надо добавить в отчет два соединения и таблицы из них. Потом между таблицами надо создать связь (в окне "Данные" выберите "Действия-Новая связь").
Если печатать из превью файла .frx, то печататется только заголовок, а бэнд данный игнорируется, а если печатать из файла готового отчета (который я вам отправила), то не печатается вообще, даже перебрав все источники, то есть принтер как будтно запрос на печать вообще не обрабатывает... Странно все это... Блин, что ж делать - то... (((((
Да, я это уже читала. Но я имела в виду несколько иное.
Вот есть у меня запрос в самой базе (не в репорте созданный, а уже готовый запрос БД), к примеру select * from Table where Table.Field = [param].
Если делать этот запрос источником данных, то он естественно выглядит не как запрос для репорта, а как таблица, то есть просто поля без взяких параметров. Если я создам параметр для этого источника, он будет передан в запрос в качестве значения для [param]?