0
我從表中查詢1個值。在分貝值是48.8使用ODBC時,TQuery浮點字段被隱式舍入爲整數
當我的應用程序使用BDE的本機Oracle SQL鏈接驅動程序時,一切正常,它仍然是48.8。
然後我讓應用程序使用另一個BDE別名,它使用ODBC數據源(來自Oracle的最新驅動程序)。現在顯示的數值是48.0
詳細
列是factW NUMBER(10, 3)
。
測試代碼:
var
q: TQuery;
begin
q := TQuery.Create(SELF);
try
q.DatabaseName := 'Realize';
q.SQL.Text := 'SELECT factW, TO_CHAR(factW) charW'
+'FROM bSertific WHERE id_sertific = :id';
q.ParamByName('id').AsInteger := dm1.Sertif1ID_SERTIFIC.AsInteger;
q.Open;
ShowMessage(' factW = '
+ FloatToStrF(
q.FieldByName('factW').AsFloat,
ffFixed,
5, 3) // here 48.000
+ ' charW = ' + q.FieldByName('charW').AsString // here 48.8
);
finally
q.Free;
end;
end;
您知道BDE已被棄用了大約十年,是不是?不能保證它能夠與大約10年前發佈的任何ODBC驅動程序一起工作,並且解決任何驅動程序的問題,因爲這一點不太可能。 –
@Ken我知道,它[自2002年起棄用](http://edn.embarcadero.com/article/28688)。這很老了,令人頭疼,實際上我正試圖遷移到ODBC,因爲在Win7上有一些BDE的問題。這就是說,我現在有問題**並重寫所有的應用程序不是幾天工作 –
然後不要更新Oracle驅動程序。 :)這個問題已經有將近十年的時間了,這已經足以讓這個問題不再成爲問題。如果你能堅持你的客戶/客戶/無論什麼時候通過BDE安裝和配置過程這麼久,你可以要求他們暫時不要升級Oracle ODBC客戶端。 –