アラキタウン

黒歴史や生き恥を切り売り

a command is already in progress のエラー

Oracleをpostgressに移行の作業を手伝いをしたときのことです。

 

Npgsplというオープンソースでデータベースにアクセスされていて、

この a command is already in progressのエラーが起こった。

 

調べてみると、英語の記事えエラーの文言も少し違うし、しかもC#のしか出てこなかったけど、

 

https://stackoverflow.com/questions/36283841/c-sharp-winforms-npgsql-3-0-5-an-operation-already-in-progress-error-when-tryi


f:id:alakialaca:20190318123412j:image

新しいコマンドを実行する前に破棄する必要があるみたい。

ソース内で連続して複数回データ読み込まれていたので、これっぽい。

 

 

先輩に聞くとそんなことないでしょ。

と初めに言われたが、

 

実際、読み込みを2つ並べるとエラーがおき、

ちゃんとcloseしてから、読み込みするとうまくいく。

 

postgres移行前のソースでは、複数の読み込みをしてたからoracleではできるんですかね。

 

そしてDBの読み込み部はusing句でくくると良いみたい。

using句でくくるとcloseしなくてよいのは、

「using close」でググったらいっぱいでてくるけど、↓下記のサイトがわかりやすい。

https://qiita.com/iiokazuya/items/dfa0b66898a2b39fc1e9