PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21911 | 05/04/20 10:04:46 | RE(1):データウィンドウのDB分割登録 By Cherry_Sunburst |
21891 | 05/04/18 15:45:12 | データウィンドウのDB分割登録 By Cherry_Sunburst |
カテゴリ:スクリプトの記述
日付:2005年04月18日 15:45 発信者:Cherry_Sunburst
題名:データウィンドウのDB分割登録
お世話になっております。
OS :Windows2000Pro/XPPro
PB :Version 8.0.3 Build 9704J
DB :Oracle9i (9.2.0.1.0)
Browser :InternetExplorer6.0.2800.1106
WebServer:None
データウィンドウに表示された内容について登録を行う際、
その内容を、ある件数に分割してDBに登録を行いたいと考えています。
主キーは伝票番号とし、採番処理にて自動生成させています。
また、DB上はヘッダテーブル、明細テーブルに分かれており、
ヘッダテーブルの主キーは伝票番号、
明細テーブルの主キーは伝票番号、行番号となっております。
例:
ヘッダ情報(データウィンドウ表示上)
Col1 Col2 Col3
A B C
明細情報(データウィンドウ表示上)
Col1 Col2 Col3
1行目 1 2 3
2行目 2 3 4
3行目 3 4 5
4行目 4 5 6
5行目 5 6 7
6行目 6 7 8
↓行いたい事↓
ヘッダ情報(DB登録上)
DenNo Col1 Col2 Col3
0001 A B C
0002 A B C
明細情報(DB登録上) 4件ずつ主キーを分割
DenNo RowNo Col1 Col2 Col3
0001 1 1 2 3
0001 2 2 3 4
0001 3 3 4 5
0001 4 4 5 6
0002 1 5 6 7
0002 2 6 7 8
つまり、データウィンドウ上で100件の明細が存在した場合、
DB登録上は、伝票番号は25個(100÷4)作成されるという事です。
(明細を4件ずつ分割した場合)
私としては、以下の方法しか思いつきません。
1.スクリプトのDB登録処理全体を、(明細全件数÷明細分割数)の回数ループさせ、
2.以降の処理を行う。
2.全く同じ構造のデータウィンドウ(データストア)(α)のインスタンスを生成し、
(α)に対象明細行をコピーする。
3.伝票番号の採番を行い、ヘッダテーブルと(α)のカラムにセットする。
4.ヘッダテーブルと、(α)の情報をDBに登録する。
5.(α)のインスタンスを開放する。
説明が難しいですが、ご理解頂けた方、
どうか知恵をお貸し下さい。宜しくお願い致します。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.