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年もまだカーソルを使っている人はいますか?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 に答える