PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
3630 | 98/10/15 08:52:55 | RE(4):PB5.0.02: DW更新時のエラーが発生する原因について By Tatsu |
3629 | 98/10/14 20:51:30 | RE(3):PB5.0.02: DW更新時のエラーが発生する原因について By あすかちゃんの父 |
3623 | 98/10/14 17:07:02 | RE(2):PB5.0.02: DW更新時のエラーが発生する原因について By Tatsu |
3605 | 98/10/13 20:42:09 | RE(1):PB5.0.02: DW更新時のエラーが発生する原因について By あすかちゃんの父 |
3601 | 98/10/13 16:59:45 | PB5.0.02: DW更新時のエラーが発生する原因について By Tatsu |
カテゴリ:データベース
日付:1998年10月14日 20:51 発信者:あすかちゃんの父
題名:RE(3):PB5.0.02: DW更新時のエラーが発生する原因について
Tatsuさん、こんばんは。
>一日がかりでやっと原因がわかったような気がします。(違うかも)
>
>ウィンドウのPFC_PREUPDATE()でDWのカラム(整数部5桁、小数部2桁)に計算結果をセットして
>いるのですが、その際にTRUNCATEやROUNDを使用していなかったため、小数部が2桁以上になって
>いました。
>
>上記の状態で更新をかけ、DWの値が1.1111111...にもかかわらず、DBの値は小数部2桁
>までで更新され(1.11になるのかな)、DWの更新フラグもリセットされたとすれば、その後即座
>に更新をかけると今回のようなエラーが発生するのではないでしょうか?
データウィンドウの更新特性で、UPDATE/DELETE文のWHERE句を
「キーカラムと更新可能カラム」とすると、更新対象のカラムの
WHERE句を文字どおり、
WHERE **TABLE.@@COLUM = \"AAAA\", **TABLE.##COLUM = \"BBBB\",......
といった具合に生成します。
この時のキーカラム/更新可能カラムの一致する条件のデータは、
データウィンドウが検索してきて保持している値が使われます。
この値がOracleで持っているデータの値と一致しなければ、問題
のエラーが発生します。
Oracle側で更新時に数値データのRoundが効いているのであれば、
可能性が高いですね。
データウィンドウのSQLPreviewイベントで、イベント引数sqlsyntax
のSQL文をチェックしてみてはどうでしょう?
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Oracle SQL*Net 2.3
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.