|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Приветствую всех, уже гуглил перегулил по этому прошу помощи.))) Раньше работал с mssql и создавал отчеты в MS Report Builder. Сейчас в проекте используется СУБД postgresql. У меня получилось в Report Builder соединиться через драйвер ODBC с БД postresql, но использовать параметры в отчетах не получается. Сам запрос используемый в отчете ругается на параметр (запрос вида where поле=@start_date) ошибка: ERROR [42703] ERROR: column "start_date" does not exist; No query has been executed with that handle т.е. почему то ищет поле, а не воспринимает как параметр. Я с данной СУБД сталкиваюсь первый раз, подскажите пожалуйста, дружит ли вообще postgresql с report builder или надо использовать другой генератор отчетов? Или может я не понимаю как использовать параметры(переменные) в postgres? Заранее спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2020, 16:14 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Kapadastra, может стоит попробовать :start_date или $1 или создать функция с параметром foo(start_date) и вызывать функцию ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2020, 16:22 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Не понятно при чем тут PostgreSQL, подстановкой параметров должно заниматься отчетное средство "For Transact-SQL queries, different data sources support different syntax for parameters ... " ( C ) MSDN как я понимаю, мало того, параметры в запросах не обязательно должны совпадать с параметрами отчета p.s. "нормальные" СУБД обычно : для параметров используют ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2020, 16:22 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
By the way, https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2c7ee3dc-1f46-4c18-95ae-6e594efecd10/cannot-use-parameter-on-postgres-query?forum=sqlreportingservices Named Parameter like @MyParam can only be used with a .NET data provider. In SSRS in common OleDB data provider is used and here you have to use the question mark ? as placeholder for a Parameter p.s. С продуктами MS не работал, желательно читать документацию ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2020, 17:06 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Troglodit, Пробовал использовать :start_date или $1 ругается. С функцией конечно попробую, но просто думал что будет как в MSSQL там можно в самом dataset в запросе указать в условии where o.created_at between @start_date and @end_date. Тут такое не прокатывает.(( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 09:29 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, "Не понятно при чем тут PostgreSQL, подстановкой параметров должно заниматься отчетное средство" и я так думал, но при указании в условии переменной @start_date в запросе, ругается только с postgres, c mssql работает такое условие с переменной ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 09:58 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Kapadastra, Попробуйте установить параметр драйвера UseServerSidePrepare = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 10:45 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Kapadastra#22064162, ? в запросе пробывали? а дальше, как я понимаю, ручками соединить параметры запроса с параметрами Report'а ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 10:49 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Только собрался выложить решение, как вы ответили))) Нашел такую ссылку https://dba.stackovernet.com/ru/q/40188, все дело в ODBC не поддерживает он именные параметры, сделал where поле between ? and ? при этом каждый вопрос это переменная по порядку, как использовать одну переменную с двумя условиями, буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 11:00 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Поиск по И-нет'у еще находит https://www.npgsql.org/index.html Опять таки, ни с чем из этого не работал ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 11:20 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Хех! А у меня похожая проблема, только с OLEDB. Вызвать из отчёта функцию при ODBC подключении как раз получилось, именно благодаря этой теме (сплошные знаки вопроса в общем, жуть). Но оказалось, что ODBC весьма медленно работает при больших выборках. Поэтому решено было изучить как работает OLEDB. И вот тут как раз загвоздка. Никак не могу найти какой синтаксис передачи параметров при вызовах процедур нужно использовать. В результате вылезает: автор** ERROR: Failed to parse statement: select * from public."TestParameterGet" (TestString := @TestString, TestWord := @TestWord); Как я только не пробовал. И "TestString := @TestString", и "TestString => @TestString", и просто перечисление параметров как у мс_сиквела (@TestString, @TestWord), и синтfксис ODBC. А документацию найти тоже не могу. Поэтому прошу подсказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 13:22 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Оказалось, что синтаксис вполне стандартный, хоть и убогий. Почти такой же как в ODBC. авторselect * from public.TestParameterGet(?,?,?); Где знаки вопроса - это параметры формы. Почему не такой же, а почти? Потому что ODBC умеет распознать явное определение типа данных, а OLEDB нет! авторselect * from public.TestParameterGet(?::date,?::text,?::int); Так OLEDB не может! И вишенкой на торте, что по умолчанию все параметры считаются текстом... Т.е. по факту вы не можете использовать ничего кроме строковых параметров. Что делает использование OLEDB невозможным на практике, потому что большинство отчётов имеет среди параметров хотя бы одну дату... В общем и целом вывод такой: если у вас есть хотя бы малейшая возможность избежать использования связки SSRS + Postgres воспользуйтесь ею. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 12:06 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
P.S. Так же ODBC не понимает кавычки в имени сущности! т.е. сделать авторselect * from "MyFunction" (?, ?) не получится. Со всеми вытекающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 13:56 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Кесарь имеет среди параметров хотя бы одну дату... что мешает принимать строковый параметр и в процедуре преобразовывать в дату? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 15:21 |
|
Создание отчетов из postgres
|
|||
---|---|---|---|
#18+
Misha111 Кесарь имеет среди параметров хотя бы одну дату... что мешает принимать строковый параметр и в процедуре преобразовывать в дату? Технически ничего. Но ввод данных, форматируемых на стороне клиента, придуман не зря. Люди же будут косячить неизбежно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 19:42 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1993646]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
384ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 773ms |
0 / 0 |