Поддерживает ли драйвер 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)