碰到个很奇怪的问题.
DLL中有一方法TEST.
用于返回SQL的结果,返回类型是OLEVARIANT,使用CLIENTDATASET接收.
function TClient.Test:olevariant;
var
tmp : TClientDataSet;
sql : string;
begin
try
tmp := TClientDataSet.Create(nil);
sql := 'SELECT TOP 1 JE FROM TABLE';
tmp.Data := FIEngine.SeleSql(PChar(sql));
Result := tmp.Data;
ShowMessage(formatfloat('0.00',tmp.Fields.Fields[2].Value));
finally
tmp.free;
end;
end;
如果SQL仅仅是查询某条记录的话.DLL和EXE返回结果一致.
如果执行 SELECT SUM(JE) FROM TABLE,DLL中结果正确.EXE中不正确...
比如DLL中SHOWMESSAGE的结果是11110,EXE中却为10000.
不知道怎么回事了..