PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
20382 | 03/10/07 09:59:58 | RE(4):PB6.5: INSERT文及びUpdateエラー対応について By aokazumajin |
20344 | 03/09/26 17:28:52 | RE(3):PB6.5: INSERT文及びUpdateエラー対応について By Chicchi |
20343 | 03/09/26 17:01:18 | RE(2):PB6.5: INSERT文及びUpdateエラー対応について By aokazumajin |
20342 | 03/09/26 14:12:33 | RE(1):PB6.5: INSERT文及びUpdateエラー対応について By Chicchi |
20337 | 03/09/26 10:52:42 | PB6.5: INSERT文及びUpdateエラー対応について By aokazumajin |
カテゴリ:データウィンドウ
日付:2003年09月26日 17:01 発信者:aokazumajin
題名:RE(2):PB6.5: INSERT文及びUpdateエラー対応について
Chicchiさん、こんにちは。
>ちょっと整理しましょう。
>
>A → テキストファイル
>B → データベースのテーブル
>C → データベースのテーブル
>
>ファイル A と テーブル B のキー部が一致した場合、A の項目と B のカラムのいくつかを結合
>してテーブル C を更新する、ということですよね ?
>
>? テーブル C に INSERT を行なっても追加されておらず、
>? UPDATE してもデータウィンドウのエラーが発生する
>
>ということですよね。
>でも、サンプルスクリプトを見ると、INSERT 文は COMMIT しておらず (そもそも更新の成否を
>判定していませんね)、UPDATE も SQL を直接指定しておられるようで、データウィンドウとは
>何の関係もなさそうなのに、何故データウィンドウのエラーが表示されるのでしょうか ?
>テーブル名やカラム名の詳細はともかく、スクリプト自体を歪曲して載せていませんか ?
>また、INSERT 文 と UPDATE 文でテーブル C のテーブル名が違っているようですが、これは
>何故でしょうか ?
>
説明が不足していたため、補足説明します。
AファイルはInportString関数を使用して、dw_Aという名前のデータウィンドウでデータを表示しています。
Bファイルはdw_Bという名前のデータウィンドウでデータを表示しています。
CファイルはAファイルのデータとBファイルのデータを結合して、Cテーブルを新規作成して更新(UPDATE)してから、
dw_Cという名前のデータウィンドウでデータを表示しています。
UPDATEのテーブルを変更しました。
コード内容)
IF A-CCC = B-CCC Then
CONNECT USING SQLCA;
dw_A.SettransObject(sqlca);
dw_B.SettransObject(sqlca);
dw_C.SettransObject(sqlca);
INSERT INTO C-TBL(C-TBL.DDD,C-TBL.EEE,C-TBL.GGG)VALUES (:A-TBL.DDD,:A-TBL.EEE,:B-TBL.GGG);
UPDATE C-TBL SET C-TBL.DDD =:A-TBL.DDD,C-TBL.EEE =:A-TBL.EEE,C-TBL.GGG =:B-TBL.GGG
WHERE A-CCC = :B-CCC;
IF dw_C.Update() = 1 Then
commit;
Else
Rollback;
Return
END IF
End If
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.