Поддерживает ли драйвер ODBC libpsqlodbcw для PostgreSQL обновляемые курсоры?

Я использую PostgreSQL версии 9.3.4 на 64-битном сервере Ubuntu.

Я использую драйвер PoatgreSQL ODBC (libpsqlodbcw) версии 9.03 для HP-UX.

Я могу подключиться, получить данные и сделать общие обновления сиквела. Тем не менее, когда я пытаюсь обновить курсор с SQLSetPOSЯ получаю ошибку:

Only SQL_POSITION/REFRESH is supported for PGA PI_SetPos

Я пытался использовать синтаксис select * from table for update of table (и много версий этого) и ничего не получалось.

На данный момент я предполагаю, что такие обновления не поддерживаются. Кто-нибудь имеет какой-либо вклад в это?

1 ответ

ДА, курсор может обновляться.

digoal=# begin;
BEGIN
digoal=# declare cur cursor for select * from t;
DECLARE CURSOR
digoal=# fetch next from cur;
 id | phone | cnt 
----+-------+-----
  1 |     1 |   3
(1 row)

digoal=# update t set cnt=1000 where current of cur returning *;
 id | phone | cnt  
----+-------+------
  1 |     1 | 1000
(1 row)

UPDATE 1
digoal=# select * from t where id=1;
 id | phone | cnt  
----+-------+------
  1 |     1 | 1000
(1 row)

digoal=# end;
COMMIT
digoal=# select * from t where id=1;
 id | phone | cnt  
----+-------+------
  1 |     1 | 1000
(1 row)
Другие вопросы по тегам