PostgreSQL Использование INSERT/UPDATE ... RETURNING

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

PostgreSQL Использование INSERT/UPDATE ... RETURNING

Сообщение anzo » 09.07.2009 11:19:06

У меня возникла проблема следующего характера.
Перерабатываем сервер приложений написанный на связке Delphi+ODBC+PostgreSQL на Lazarus+TPQConnection+PostgreSQL с целью поддержки кроссплатформенности.
Все работает отлично, кроме одного момента :(
Postgresql поддерживает следующую очень удобную конструкцию.
INSERT INTO table(a,b,c) VALUES (1,2,3)... RETURNING a,b,c;
UPDATE table SET a = a + 1, b = b*a WHERE c = 3 RETURNING a,b;
эти запросы возвращают наборы данных с измененными записями, так же как это делает SELECT

Так вот. Мне ни как не удается выполнять подобные запросы с помощью стандартных классов lazarus'a.
Если я помещаю в TSQLQuery.SQL запрос, а потом вызываю SQL.Open, то возникает ошибка:
Cannot open a non-select statement
Если вызываю ExecSQL, то запрос вообще не выполняется.
В DElphi+ODBC подобные запросы нормально работали и возвращали наборы данных.
Переделывать SQL запросы из 1 в 2 или более не хочется да и проблематично, в связи с большим количеством кода.

Как решить проблему? У кого какие мысли?

Добавлено спустя 33 минуты 36 секунд:
В общем проблема похоже решилась. :D Эта фича работает в библиотеке ZEOS
anzo
новенький
 
Сообщения: 28
Зарегистрирован: 09.07.2009 10:53:46

Re: PostgreSQL Использование INSERT/UPDATE ... RETURNING

Сообщение Attid » 09.07.2009 12:16:29

в птичке тоже такие констркции есть и в связке лазарус-уиб работают.

думаю тебе надо либюо исправить компоненты либо искать заточеные на слоника
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 31

Рейтинг@Mail.ru