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

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