ADOでマイナス欠落


Delphiビギナー  2003-05-15 04:33:51  No: 3540

Adoでマイナス数値を取得する場合
なぜか、マイナスが欠落してしてしまいます。
回避方法をご存知の方ご教授をお願いします。

環境
Verison  Delphi7 Pro
DB       Oracle9i


さかきんぐ  2005-05-31 04:06:57  No: 3541

原因は不明。Delphi6 Ent + Oracle9i でも同様の現象が起きる。

解決にはならないが、簡単な回避方法..。
  →Delphi 2005 Ent でコンパイルする。
    (ソースの変更必要なし。ADOのversionは関係ないものと思われる。)

多分、Delphiのバグなのかも知れない。(推測の域ですが..)


RAN  2005-05-31 08:02:27  No: 3542

ちょっと検索した所、ADODB.pasの
TCustomADODataSet.GetFieldDataのVarToBufferプロシージャを
以下のように修正すると良いというような話がありました。

ftAutoInc, ftInteger:
 if (wReserved1 = 32768) then 
   Integer(Buffer^) := -lVal 
 else 
   Integer(Buffer^) := lVal;

ftSmallintも同じように修正?
Delphi2005でも修正されていないようですので、真偽不明ですが
ご参考になれば。


Syake  2005-05-31 08:16:42  No: 3543

>TCustomADODataSet.GetFieldDataのVarToBufferプロシージャを
>以下のように修正すると良いというような話がありました。
もしかして
Oracleを使用したらとのことですが、SQLServerでも同じことが
起きる可能性があるのですか?


RAN  2005-05-31 08:39:12  No: 3544

> 起きる可能性があるのですか?
ありますね。たぶん。


Syake  2005-05-31 09:14:37  No: 3545

ゲゴゲロ!!(古(^_^;))
これは、大変だ!。
今のところ、D7.D2005で期待した以外の動作の事例は
(エラー)は報告されていませんが、今後の推移を見守ります。
また、投稿内容は参考にさせていただきます。
ありがとうございます。


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

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






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