我正从表中查询1个值。在db中它的值是48.8
当我的应用程序使用BDE的本机Oracle SQL Link驱动程序时,一切正常,它仍然是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;
答案 0 :(得分:0)
我找不到合适的解决方案。解决方法是将字段作为字符串进行查询,并在客户端来回转换。