SetItem メソッドで異なるデータ型の値をカラムにセットした場合にエラーを返さない
2019/10/07
PowerServer において、SetItem メソッドで異なるデータ型の値をカラムにセットした場合にエラーを返さず、値がカラムにセットされる不具合が確認されています。
Bug ID | 3251 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerServer EN/JP | ||||||
ステータス | Appeonにて検証中 | ||||||
発生バージョン | EN | 2016 | 2017 | 2019 | |||
JP | 2016 | 2017 | 2019 |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
SetItem メソッドで値のデータ型とカラムのデータ型が異なり且つカラムにセットする値が Null 値の場合、型違いのエラーを返さずにカラムへセットされてしまいます。そのため、既にカラムに値がセットされていると Null 値で上書きされてしまいます。また、SetItem メソッドの戻り値も「1」となります。
例えば、Number 型のカラムに対して、SetItem メソッドで Null 値が格納されている String 型変数をセットした場合、Number 型のカラムに Null 値がセットされます。PowerBuilder では型違いのエラーを返して戻り値が「-1」となり、Null 値はセットされません。
なお、格納されている値が Null 値以外の場合は型違いのエラーを返して、値はカラムにセットされません。
回避策
本不具合に関する回避策は以下となります。
- 値のデータ型とカラムのデータ型が異なり且つカラムにセットする値が Null 値の時は、SetItem メソッドを実行しないようにしてください。