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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.