DataSet.Filter で 数値でフィルターできなくなった

解決


FUJI  2015-11-30 22:48:27  No: 47777

お世話になります。

当方の環境は
    DelphiXE5, Windows7 Pro, Oracle11g
です。

突然、今朝からデータベースのFilterの動作が意図している結果にならなくて
困っています。
先日までは 番号(NUMBER)を1でFilterしたら、その番号のみが抽出されて
いたのですが、今日から全ての行が表示されるようになりました。

例えば、下記のようになります。

テーブル TBL が下記のようにあったとして
AAA     BBB
CHAR(3) NUMBER(3,0)
001     3
002     2
003     1
004     1

--- 初期化 ---
Close;
DataSet.Close;
DataSet.CommandText := 'SELECT  AAA, BBB  FROM TBL';
DataSet.Open;
Open;

--- ボタンイベント 1 ---
DataSet.Filter := 'BBB = 1';     // BBB=1.0でも =2 でも =3 でも同じ結果

--- 結果 ---
TBL テーブルが全て表示

--- ボタンイベント 2 ---
DataSet.Filter := 'AAA = ''001''';

--- 結果 ---
AAA      BBB
001      3

--- ボタンイベント 3 ---
DataSet.Filter := 'BBB >= 1 AND BBB < 1.000000000000001;

--- 結果 ---
AAA      BBB
003      1
004      1

とボタンイベント3の方法でようやく意図した結果になります。

昨日までEXEのビルドを実行すると、今日でもこのような結果にはならず、BBB=1で意図した
結果になりました。

上記のようなごく単純なアプリケーションをつくっても意図した結果にならないので、
開発環境がオカシイような気がするんです。。。

以前のビルドまでは Delphi 10 Seattle がインストールされており、データベースで
意図しない動作が確認されたので、10が悪さをしているかと思い、アンインストールして、
すると今度はDelphiXE5が正しく動かなくなったので、さらに再インストールをしたのですが。。。

原因がよく分かりません。


FUJI  2015-12-05 12:23:39  No: 47778

結局、Delphiを再インストールしました。
すると、すんなり正常動作しました。
なんだかな〜。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加