powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание отчетов из postgres
15 сообщений из 15, страница 1 из 1
Создание отчетов из postgres
    #39916868
Kapadastra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех, уже гуглил перегулил по этому прошу помощи.)))
Раньше работал с 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?
Заранее спасибо)
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39916871
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kapadastra,

может стоит попробовать :start_date или $1
или создать функция с параметром foo(start_date)
и вызывать функцию
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39916872
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно при чем тут PostgreSQL, подстановкой параметров должно заниматься отчетное средство

"For Transact-SQL queries, different data sources support different syntax for parameters ... " ( C ) MSDN

как я понимаю, мало того, параметры в запросах не обязательно должны совпадать с параметрами отчета

p.s.
"нормальные" СУБД обычно : для параметров используют
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39916888
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 не работал, желательно читать документацию
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917126
Kapadastra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Troglodit,

Пробовал использовать :start_date или $1 ругается.
С функцией конечно попробую, но просто думал что будет как в MSSQL там можно в самом dataset в запросе указать в условии where o.created_at between @start_date and @end_date. Тут такое не прокатывает.((
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917137
Kapadastra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
"Не понятно при чем тут PostgreSQL, подстановкой параметров должно заниматься отчетное средство" и я так думал, но при указании в условии переменной @start_date в запросе, ругается только с postgres, c mssql работает такое условие с переменной
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917161
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kapadastra,

Попробуйте установить параметр драйвера
UseServerSidePrepare = 0
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917163
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kapadastra#22064162,

? в запросе пробывали?

а дальше, как я понимаю, ручками соединить параметры запроса с параметрами Report'а
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917168
Kapadastra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Только собрался выложить решение, как вы ответили)))
Нашел такую ссылку https://dba.stackovernet.com/ru/q/40188, все дело в ODBC не поддерживает он именные параметры, сделал where поле between ? and ? при этом каждый вопрос это переменная по порядку, как использовать одну переменную с двумя условиями, буду разбираться.
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #39917185
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск по И-нет'у еще находит
https://www.npgsql.org/index.html

Опять таки, ни с чем из этого не работал
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Создание отчетов из postgres
    #40134499
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хех! А у меня похожая проблема, только с 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.

А документацию найти тоже не могу. Поэтому прошу подсказать.
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #40135103
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось, что синтаксис вполне стандартный, хоть и убогий. Почти такой же как в ODBC.


авторselect *
from public.TestParameterGet(?,?,?);

Где знаки вопроса - это параметры формы.

Почему не такой же, а почти? Потому что ODBC умеет распознать явное определение типа данных, а OLEDB нет!

авторselect *
from public.TestParameterGet(?::date,?::text,?::int);

Так OLEDB не может!

И вишенкой на торте, что по умолчанию все параметры считаются текстом... Т.е. по факту вы не можете использовать ничего кроме строковых параметров. Что делает использование OLEDB невозможным на практике, потому что большинство отчётов имеет среди параметров хотя бы одну дату...


В общем и целом вывод такой: если у вас есть хотя бы малейшая возможность избежать использования связки SSRS + Postgres воспользуйтесь ею.
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #40135141
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Так же ODBC не понимает кавычки в имени сущности!


т.е. сделать

авторselect *
from "MyFunction" (?, ?)

не получится. Со всеми вытекающими.
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #40135165
Misha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кесарь
имеет среди параметров хотя бы одну дату...

что мешает принимать строковый параметр и в процедуре преобразовывать в дату?
...
Рейтинг: 0 / 0
Создание отчетов из postgres
    #40135722
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha111
Кесарь
имеет среди параметров хотя бы одну дату...

что мешает принимать строковый параметр и в процедуре преобразовывать в дату?


Технически ничего. Но ввод данных, форматируемых на стороне клиента, придуман не зря. Люди же будут косячить неизбежно.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание отчетов из postgres
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]