PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21839 | 05/03/30 14:18:53 | RE(2):PB6.5: 複数のテーブルを結合しているdatawindowのInsertRowについて By shijimi |
21824 | 05/03/18 10:13:25 | RE(1):PB6.5: 複数のテーブルを結合しているdatawindowのInsertRowについて By kmaru |
21815 | 05/03/16 14:03:10 | PB6.5: 複数のテーブルを結合しているdatawindowのInsertRowについて By shijimi |
カテゴリ:データウィンドウ
日付:2005年03月16日 14:03 発信者:shijimi
題名:PB6.5: 複数のテーブルを結合しているdatawindowのInsertRowについて
こんにちは、datawindowのInsertRowについて教えてください。
まず2つのテーブル(tableA、tableB)を結合してるdatawindowを作成します。
以下のような感じです。
これらの項目すべて、ある画面の表示項目とします。
編集可能項目(更新項目)は、以下のtableB.カラムd,tableB.カラムe,tableB.カラムfの3つです。
★datawindowのSQL文★
select tableA.カラムa,
tableA.カラムb,
tableA.カラムc,
tableB.カラムd,
tableB.カラムe,
tableB.カラムf
from tableA、tableB
where (tableA.カラムa = tableB.カラムd)
and tableB.カラムd = 引数
これをある画面にdatawindowを貼り付け、新規(InsertRow)、または修正(retrieve)
をしたいのですが・・。
※新規の場合でも、新規作成するデータはtableAにはすでに存在するデータです。
新規の際は、実際tableBテーブルに行を追加したいと考えています。
そこで、新規の場合、このdatawindowに行を追加します。
datawindow.InsertRow(0)
datawindow.SetItem(1,tableB.カラムd,”XXXXX”)
すると、当然selectしているtableB.カラムd以外のすべての項目
(tableA.カラムa,tableA.カラムb,tableA.カラムc,tableB.カラムe,tableB.カラムf)
がNULLの状態で表示されてしまいます。
実際はtableAの項目(tableA.カラムa,tableA.カラムb,tableA.カラムc)で、
tableA.カラムa = \"XXXXX\"のデータは存在します。
どうすれば、行の追加した際に、結合してるテーブル(ここでいうtableA.カラムa,
tableA.カラムb,tableA.カラムc)の項目を検索し、表示することができますか?
現在考えているのは、tableAの項目(tableA.カラムa,tableA.カラムb,tableA.カラムc)
を別のdatawindow(もしくはデータストアなど)で、検索し、一時的に表示用の
datawindowにコピーし(SetItem)表示する方法です。
また、一度InsertRowした後、datawindow.SetItem(1,tableB.カラムd,”XXXXX”)をし、
UPDATEを行い、そのあとretrieveする方法。
どちらも強引な気がして、他に良い方法がありそうなのですが、思いつきません。
誰か良い方法を知っている方、教えてください。お願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Oracle SQL*Net 2.3
Browser InternetExplorer5.X
Server SoftWare
OS Windows 2000
DBMS Oracle 7.3
WebServer IIS
Copyright © 2013 Power Future Co., Ltd.