- - PR -
ado.net ループ時のinsertについて
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-04 16:48
先ほどのINSERTしてSELECTするロジックは
どこに入るのでしょうか? INSERTの後(SELECTの前)にコミットすれば 良いと思いますが... |
|
投稿日時: 2004-02-04 16:59
レスありがとうございます。
先ほどのSELECTしてINSERTするロジックはサブルーチンの中です。 INSERTの後(SELECTの前)にコミットすれば 良いとのご指摘でしたが, 一つのファイルから情報を取得し,10テーブルに書き込んだ後に コミット ようは,数テーブルに書き込んでも,最後の一つがこければ ロールバックの仕様なので,それができないんです |
|
投稿日時: 2004-02-04 17:11
んと、ソースを載せるのではなく、処理の手順を書いて頂けませんか。
例::::: トライ: データベースに接続 繰り返し:テーブル数 テーブル[n]にデータ挿入 テーブル[n]からデータ取得 コミット 例外キャッチ:SqlException ロールバック ログ出力 戻る ファイナリ: データ接続閉じる :トライブロック終わり |
|
投稿日時: 2004-02-04 17:47
INSERTとSELECTのSqlCommanndを同じ接続、同じトランザクションにしたら
動きませんか? |
|
投稿日時: 2004-02-04 19:54
例にみなうとこんな感じです。
トライ: データベースに接続 繰り返し:テーブル数 テーブル[n]にデータ挿入 テーブル[n]からデータ取得 コミット ------------------------------------- トライ: データベースに接続 例外キャッチ:SqlException ログ出力 戻る トライ: トランザクション開始 例外キャッチ:SqlException ログ出力 戻る --------------------------------------- 〜サブルーチンコール〜 1テーブル---------------------- 1テーブル[n]SELECT レコードセット有 1テーブル[n]DELETE 1テーブル[n]INSERT 2テーブル---------------------- 2テーブル[n]SELECT レコードセット有 2テーブル[n]DELETE 2テーブル[n]INSERT 3テーブル---------------------- 3テーブル[n]SELECT レコードセット有 3テーブル[n]DELETE 3テーブル[n]INSERT 4テーブル---------------------- 4テーブル[n]DELETE ★こけるのは下記SELECT文 3テーブル[n]SELECT レコードセット有 SELECT CASE条件文 4テーブル[n]INSERT --------------------------------------- トライ: コミット 例外キャッチ:SqlException ログ出力 ロールバック --------------------------------------- |
|
投稿日時: 2004-02-06 18:03
>INSERTとSELECTのSqlCommanndを同じ接続、同じトランザクションにしたら
>動きませんか? 確かに動くのですが,SELECTした後にHasRowsを使う所で データセットを閉じているので駄目とエラーが生じてしまうんです。 |