2009-06-19 8 views
0

C#プロジェクトの行ごとにdb2データベースから取得したテーブルに対していくつかのアクションを実行します。 が、私は例外が発生した次の文を使用してデータベースに行でカーソル行を使用して、それを更新しようとすると:DB2のカーソルステートメントを使用して、このの私の理解から、.netから行単位でテーブルを更新します。

selectCommand.CommandText = "DECLARE crsr1 CURSOR FOR select * from " + tableName+" ;" 

を.NET言語でサポートされていません。 。 IBM DB2 ODBCドライバーを使用してデータベースに接続しています。

カーソルを使用する方法があるか、誰かが私がここで紛失しているものがあるかどうかを知ることができますか?

私はネット上で多くの検索を行いましたが、この問題ではあまり利用できません。

これは私が上記の文になった例外です -

"ERROR [42601] [IBM][CLI Driver][DB2/NT] SQL0104N An unexpected token \"DECLARE CRSR1 CURSOR FOR select * from MYTA\" was found following \"BEGIN-OF-STATEMENT\". 
Expected tokens may include: \"<space>\". SQLSTATE=42601\r\n" 

任意のヘルプや提案が高く評価されています。

答えて

0

私はあなたがおそらくprocのにそれを置きたいと思います - あなたは、通常は行わない「宣言カーソルを..」ストアドプロシージャの外に{あなたがCLIか何かでデバッグしていた場合を除き}

0

コマンド・テキストに「SELECT」部分を入れ、スクロール可能な更新可能カーソルをラップする結果セットを戻すには、DB2CommandのExecuteResultSetメソッドを使用するだけです。

selectCommand.CommandText = "select * from " + tableName+" ;" 
using(var result = selectCommand.ExecuteResultSet(DB2ResultSetOptions.Updatable)) 
{ 
    while (result.Read()) 
    { 
     //set value of 2nd column to 'Hello' 
     result.SetString(1, "Hello"); 
    } 
} 
関連する問題