- PR -

ado.net ループ時のinsertについて

投稿者投稿内容
つぢ
会議室デビュー日: 2003/10/29
投稿数: 9
投稿日時: 2004-02-04 16:48
先ほどのINSERTしてSELECTするロジックは
どこに入るのでしょうか?

INSERTの後(SELECTの前)にコミットすれば
良いと思いますが...

いっく☆
常連さん
会議室デビュー日: 2003/11/26
投稿数: 35
投稿日時: 2004-02-04 16:59
レスありがとうございます。
先ほどのSELECTしてINSERTするロジックはサブルーチンの中です。
INSERTの後(SELECTの前)にコミットすれば
良いとのご指摘でしたが,
一つのファイルから情報を取得し,10テーブルに書き込んだ後に
コミット
ようは,数テーブルに書き込んでも,最後の一つがこければ
ロールバックの仕様なので,それができないんです
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-04 17:11
 んと、ソースを載せるのではなく、処理の手順を書いて頂けませんか。


例:::::

トライ:
 データベースに接続
 繰り返し:テーブル数
  テーブル[n]にデータ挿入
  テーブル[n]からデータ取得
 コミット

例外キャッチ:SqlException
 ロールバック
 ログ出力
 戻る

ファイナリ:
 データ接続閉じる
:トライブロック終わり
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-04 17:47
INSERTとSELECTのSqlCommanndを同じ接続、同じトランザクションにしたら
動きませんか?
いっく☆
常連さん
会議室デビュー日: 2003/11/26
投稿数: 35
投稿日時: 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
 ログ出力
 ロールバック
---------------------------------------
 
いっく☆
常連さん
会議室デビュー日: 2003/11/26
投稿数: 35
投稿日時: 2004-02-06 18:03
>INSERTとSELECTのSqlCommanndを同じ接続、同じトランザクションにしたら
>動きませんか?

確かに動くのですが,SELECTした後にHasRowsを使う所で
データセットを閉じているので駄目とエラーが生じてしまうんです。

スキルアップ/キャリアアップ(JOB@IT)