PostgreSQL的ODBC驱动程序lib psqlodbcw是否支持可更新游标?

时间:2014-05-12 22:39:56

标签: postgresql odbc psqlodbc

我在Ubuntu 64位服务器上运行PostgreSQL版本9.3.4。

我在HP-UX上使用PoatgreSQL ODBC驱动程序(libpsqlodbcw)9.03版。

我能够连接,检索数据并进行一般的续集更新。但是,当我尝试使用SQLSetPOS更新游标时,出现错误:

Only SQL_POSITION/REFRESH is supported for PGA PI_SetPos

我尝试使用语法select * from table for update of table(以及此版本的许多版本)并没有任何效果。

此时我猜测不支持此类更新。有人对此有任何意见吗?

1 个答案:

答案 0 :(得分: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)