0

我有一个c_email包含电子邮件地址查询的游标。我需要遍历它,每次迭代都执行插入语句。

如何在powerbuilder中循环光标,直到光标位于末尾

到目前为止,我有以下内容:

DECLARE c_email CURSOR FOR
 SELECT email_id
     ...

OPEN c_email;
CLOSE c_email;
4

3 回答 3

2
OPEN c_email;
DO WHILE TRUE
FETCH c_email INTO :bind_variable;
if sqlca.sqlcode<>0 then exit 
End If
//......insert statement..
LOOP
CLOSE c_email ;

或者

Sybase 支持从一个表中选择值并插入到另一个表中。

INSERT INTO table1 ( <column list> )
SELECT ( <column list> ) FROM table2 ; --> this is the SELECT from the CURSOR
于 2012-10-04T18:04:13.513 回答
1

2012年还有人用CURSORS吗?1985 年的电话——他们想要他们的技术回来……

这是 POWERBUILDER。有个疯狂的东西叫做 DATAWINDOW。如果您不知道如何执行基于集合的 INSERT/SELECT(这是最好的方法),则将您的查询编码到数据窗口检索中并在 PowerScript 中循环遍历它。

FOR x = 1 to dw_1.rowcount()
  // ls_variable = dw_1.GetItemString( x, "colName")
  // INSERT into table (ls_variable, blah, blah);
  // Error checking
  // COMMIT or ROLLBACK
NEXT
于 2012-10-04T19:07:16.793 回答
0

客户端游标不是最好的解决方案。最好在存储过程中编写这样的代码。 http://www.zuskin.com/pb_code.htm#Avoid_SQL

于 2012-12-05T17:47:36.937 回答