トランザクションについて
mysticage
投稿数: 77
データベース:SQLServer2008R2
伝票形式(伝票ヘッダテーブルと伝票明細テーブル)の登録時のトランザクションの設定について教えて下さい。
伝票入力画面では、ヘッダと明細をそれぞれワークテーブル(Pervasive)に登録をし、登録時に、バッチ処理で、ワークテーブルからリンク書出しで以下のように登録しています。
親タスク
ワークテーブル(ヘッダ)をメインテーブルに参照
子タスク1
伝票ヘッダテーブルにリンク書出しにて登録
子タスク2
ワークテーブル(明細)をメインテーブルに参照(親タスクからキー情報を範囲式に代入)
子タスク2の子タスク
伝票明細テーブルにリンク書出しにて登録
今回、ワークテーブル(明細)に6レコード登録してあったのですが伝票明細テーブルには5行しか登録できない現象が発生しました。
トランザクションは上記のタスク4つとも以下になっていました。
トランザクションモード:P=物理
トランザクション開始:P=レコード前の前
この設定だと、レコード単位でトランザクションが処理されますので、上記のような現象が発生してしますのは分かります。
伝票単位で、トランザクションを一括処理したい場合は、上記4つのタスクのトランザクションをどのように設定したらよろしいのでしょうか。
また、登録時にエラーがあったかどうかの判断はどのようにしたらできるのでしょうか。(伝票単位でロールバックが起こり、何かの戻り値がエラーとなる?)
基本的なことだと思いますが、よろしくお願い致します。
伝票形式(伝票ヘッダテーブルと伝票明細テーブル)の登録時のトランザクションの設定について教えて下さい。
伝票入力画面では、ヘッダと明細をそれぞれワークテーブル(Pervasive)に登録をし、登録時に、バッチ処理で、ワークテーブルからリンク書出しで以下のように登録しています。
親タスク
ワークテーブル(ヘッダ)をメインテーブルに参照
子タスク1
伝票ヘッダテーブルにリンク書出しにて登録
子タスク2
ワークテーブル(明細)をメインテーブルに参照(親タスクからキー情報を範囲式に代入)
子タスク2の子タスク
伝票明細テーブルにリンク書出しにて登録
今回、ワークテーブル(明細)に6レコード登録してあったのですが伝票明細テーブルには5行しか登録できない現象が発生しました。
トランザクションは上記のタスク4つとも以下になっていました。
トランザクションモード:P=物理
トランザクション開始:P=レコード前の前
この設定だと、レコード単位でトランザクションが処理されますので、上記のような現象が発生してしますのは分かります。
伝票単位で、トランザクションを一括処理したい場合は、上記4つのタスクのトランザクションをどのように設定したらよろしいのでしょうか。
また、登録時にエラーがあったかどうかの判断はどのようにしたらできるのでしょうか。(伝票単位でロールバックが起こり、何かの戻り値がエラーとなる?)
基本的なことだと思いますが、よろしくお願い致します。
投票数:0
平均点:0.00
投稿ツリー
-
トランザクションについて
(mysticage, 2015-1-26 20:17)
-
Re: トランザクションについて
(TKitabayashi, 2015-1-27 9:46)
- Re: トランザクションについて (mysticage, 2015-2-6 16:59)
-
Re: トランザクションについて
(TKitabayashi, 2015-1-27 9:46)