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日 14:12 発信者:Chicchi
題名:RE(1):PB6.5: INSERT文及びUpdateエラー対応について

aokazumajinさん、こんにちは。

>(例) Aファイルの内容    Bファイルの内容    Cファイルの内容
>    CCC DDD EEE    CCC  FFF  GGG      DDD EEE  GGG
>       
> 
>AというテキストファイルとBというPBデータベースファイルがあります。
>AファイルのCCCカラムとBファイルのCCCカラムのKEY項目でマッチングをして一致したKEYがある場合、上記の
(例)
>で言うとAファイルのDDDとEEEのカラムとBファイルのGGGのカラムをCファイルにセットして、Cファイルのデータを
>UPDATEして、Cファイルのデータベースを作成する処理を行っていますがINSERT文を行っても、行の挿入がされず
>UPDATEしても、データウィンドウはUPDATE機能がありません!とエラーとなります。良い解決法があれば、教えて
>頂けないでしょうか?

>コード内容)

>IF A-CCC = B-CCC Then
>   INSERT INTO C-TBL(C-TBL.DDD,C-TBL.EEE,C-TBL.GGG)VALUES (:A-TBL.DDD,:A-TBL.EEE,:B-TBL.GGG);
>   UPDATE  D_CFILE SET D_CFILE.DDD =:A-TBL.DDD,D_CFILE.EEE =:A-TBL.EEE,D_CFILE.GGG =:B-TBL.GGG
>           WHERE A-CCC = :B-CCC;
>END IF

ちょっと整理しましょう。

A → テキストファイル
B → データベースのテーブル
C → データベースのテーブル

ファイル A と テーブル B のキー部が一致した場合、A の項目と B のカラムのいくつかを結合
してテーブル C を更新する、ということですよね ?
で、

? テーブル C に INSERT を行なっても追加されておらず、
? UPDATE してもデータウィンドウのエラーが発生する

ということですよね。
でも、サンプルスクリプトを見ると、INSERT 文は COMMIT しておらず (そもそも更新の成否を
判定していませんね)、UPDATE も SQL を直接指定しておられるようで、データウィンドウとは
何の関係もなさそうなのに、何故データウィンドウのエラーが表示されるのでしょうか ?
テーブル名やカラム名の詳細はともかく、スクリプト自体を歪曲して載せていませんか ?
また、INSERT 文 と UPDATE 文でテーブル C のテーブル名が違っているようですが、これは
何故でしょうか ?


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Sybase SQL Anywhere Client
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

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