W
wlandll
Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中执行SQL语句,在SQL Server中结果是正确的,但是在返回结果集中却不对,不知道为什么?
var
sSQL:String;
begin
sSQL:='select Quantity*Price Amount from D_Order ';
with ClientDataSet1 do
begin
Close;
CommandText:=sSQL;
Open;
end;
end;
执行完成后,返回值不稳定,一会是0,一会是435435.43543等非常大的数值。反正就是会跳来跳去。
而我将SQL语句在SQL Server查询分析器中执行时是正确的数值。
经测试,发现,只要有计算的返回值,都有这个问题。
这是DELPHI的BUG吗?或者是我的用法不对,我用ClientDataSet取返回值。
当我将计算的数值以字符串方式回传时,返回值是正确的。
sSQL:='select Cast(Quantity*Price as varchar(20)) Amount from D_Order ';这样返回的是字符串,但数值却是正确的。
虽然转换一下数值正确了,但是因为是字符串,我没法格式化它。大家帮帮忙。
开发环境是Delphi6,打了D6_upd2_ent.exe补丁,2000/Xp下都有这个问题
数据库是SQL Serve2000
var
sSQL:String;
begin
sSQL:='select Quantity*Price Amount from D_Order ';
with ClientDataSet1 do
begin
Close;
CommandText:=sSQL;
Open;
end;
end;
执行完成后,返回值不稳定,一会是0,一会是435435.43543等非常大的数值。反正就是会跳来跳去。
而我将SQL语句在SQL Server查询分析器中执行时是正确的数值。
经测试,发现,只要有计算的返回值,都有这个问题。
这是DELPHI的BUG吗?或者是我的用法不对,我用ClientDataSet取返回值。
当我将计算的数值以字符串方式回传时,返回值是正确的。
sSQL:='select Cast(Quantity*Price as varchar(20)) Amount from D_Order ';这样返回的是字符串,但数值却是正确的。
虽然转换一下数值正确了,但是因为是字符串,我没法格式化它。大家帮帮忙。
开发环境是Delphi6,打了D6_upd2_ent.exe补丁,2000/Xp下都有这个问题
数据库是SQL Serve2000