powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Гуры, плиз хелп с запросом
5 сообщений из 5, страница 1 из 1
Гуры, плиз хелп с запросом
    #35060153
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одна фиговина, которую я пытаюсь адаптирвоать к pgsql требует такую конструкцию, т.е. чтобы выбранное значение было описано выходным параметром.
Сам запрос отрабатывает

Как ни крутил, пишет ошибку

Код: plaintext
1.
2.
3.
 aCmd.CommandText =
"SELECT MAX(idx) INTO ? FROM (SELECT MAX(track_insert) AS idx FROM orders UNION SELECT (track_update) AS idx FROM orders) t;";
                aCmd.Parameters.Add(":" + NewReceivedValue, OleDbType.DBTimeStamp).Direction = ParameterDirection.Output;
                serverProvider.SelectNewCommand = anchorCmd;

Возникает мысль, что не позволит pgsql(или посредники, провайдеры...) так сделать


Как заменить этот запрос, чтобы он все-таки имел параметр и возвращал нужное значение?
Может процедуру сделать? как он должна выглядеть?
...
Рейтинг: 0 / 0
Гуры, плиз хелп с запросом
    #35060160
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhодна фиговина, которую я пытаюсь адаптирвоать к pgsql требует такую конструкцию, т.е. чтобы выбранное значение было описано выходным параметром.
Сам запрос отрабатывает

Как ни крутил, пишет ошибку

Код: plaintext
1.
2.
3.
 aCmd.CommandText =
"SELECT MAX(idx) INTO ? FROM (SELECT MAX(track_insert) AS idx FROM orders UNION SELECT (track_update) AS idx FROM orders) t;";
                aCmd.Parameters.Add(":" + NewReceivedValue, OleDbType.DBTimeStamp).Direction = ParameterDirection.Output;
                serverProvider.SelectNewCommand = anchorCmd;

Возникает мысль, что не позволит pgsql(или посредники, провайдеры...) так сделать


Как заменить этот запрос, чтобы он все-таки имел параметр и возвращал нужное значение?
Может процедуру сделать? как он должна выглядеть?
У ПГ нет такого синтаксиса - значит уже сам ПГ не позволит.
Напишите хранимку, которая будет возвращать соответствующий результат. Хранимки с OUT параметрами появились с 8.0. Главное теперь, чтобы "посредники, провайдеры" позволили так сделать.
...
Рейтинг: 0 / 0
Гуры, плиз хелп с запросом
    #35060202
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такую написал
CREATE OR REPLACE FUNCTION "public"."get_new_anchor" () RETURNS TIMESTAMP AS
$body$
SELECT MAX(idx) FROM (SELECT MAX(track_insert) AS idx FROM employee UNION SELECT (track_update) AS idx FROM employee) t;
$body$
LANGUAGE 'sql' IMMUTABLE RETURNS NULL ON NULL INPUT SECURITY INVOKER;

так работает
select get_new_anchor();


а как с аутпут парамтером сделать?
...
Рейтинг: 0 / 0
Гуры, плиз хелп с запросом
    #35066348
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhа как с аутпут парамтером сделать?
А смысл, если и так работает?

Если бы это было ODBC, то можно было бы попробовать такую конструкцию:

aCmd.CommandText = "{call ? = get_new_anchor()}"

Для ADO не уверен что это прокатит, нет опыта.
...
Рейтинг: 0 / 0
Гуры, плиз хелп с запросом
    #35066614
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Прудивус Winnipuhа как с аутпут парамтером сделать?
А смысл, если и так работает?

Если бы это было ODBC, то можно было бы попробовать такую конструкцию:

aCmd.CommandText = "{call ? = get_new_anchor()}"

Для ADO не уверен что это прокатит, нет опыта.

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

http://]http://www.sql.ru/forum/actualthread.aspx?tid=514277
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Гуры, плиз хелп с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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