PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
6967 | 99/07/01 22:07:25 | RE(1):PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。 By あすかちゃんの父 |
6966 | 99/07/01 20:44:24 | PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。 By VAN |
カテゴリ:PowerBuilderの開発環境
日付:1999年07月01日 22:07 発信者:あすかちゃんの父
題名:RE(1):PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。
VANさん、こんばんは。
>を作成しました。アプリケーション側でTimeStamp型のカラムをセットしなくてもSybase側でUpdate時にセットされ
ま
>す。しかし、アプリケーション側でTimeStamp型のカラム以外を入力しDataWindowをUpdateした後、続けてその行を
>DeleteRowして再度Updateすると、\"検索と更新の間に行が変更されました。\"と表示されUpdateは無視されます。ち
な
>みに、最初のUpdate後、アプリケーションを終了し再度、アプリケーションを起動し、DeleteRow・Updateを行うと
う
>まく更新されます。(なお、TimeStamp型のカラムは主キーに設定してあります。)
これはTimeStamp型の問題ではなく、
・キーカラムをデフォルトで設定している
・キーカラムを更新している
ということが原因で、エラーが出ていると思います。
更新のときに行を特定するためにデータウィンドウの生成するUpdate、
Delete文は、最低キーカラムの値をWhere句に含めています。この時に
Where句の比較演算で使われる値は、データウィンドウバッファの値です。
「アプリケーション側でTimeStamp型のカラム以外を入力しDataWindow
をUpdate」すると、サーバ側はデフォルトの値が入りますが、データウィ
ンドウはNullのままです。
「続けてその行をDeleteRowして再度Update」したときのDelete文の
Where句は「Where colum is null」となるので、一致する行が存在せず
エラーになっています。
これを回避するには、Insertが成功した直後に、SELECTを実行しデフォル
ト設定された値を読み込む必要があります。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Sybase SQL Anywhere Standalone
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.