c_email
電子メール アドレスのクエリを含むカーソルがあります。反復ごとに挿入ステートメントを実行して、ループする必要があります。
カーソルが最後になるまで、powerbuilder でカーソルをループする方法
これまでのところ、私は以下を持っています:
DECLARE c_email CURSOR FOR
SELECT email_id
...
OPEN c_email;
CLOSE c_email;
c_email
電子メール アドレスのクエリを含むカーソルがあります。反復ごとに挿入ステートメントを実行して、ループする必要があります。
カーソルが最後になるまで、powerbuilder でカーソルをループする方法
これまでのところ、私は以下を持っています:
DECLARE c_email CURSOR FOR
SELECT email_id
...
OPEN c_email;
CLOSE c_email;
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年もまだカーソルを使っている人はいますか?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
クライアント側のカーソルは最適なソリューションではありません。このようなコードは、ストアド プロシージャに記述した方がよいでしょう。 http://www.zuskin.com/pb_code.htm#Avoid_SQL