三层架构奇怪的问题
三层架构奇怪的问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061215121442120.html
下边是我在中间层中的程序,用于返回数据到客户端。
procedure Tappserverforjb.SelectAllData(const SQlText: WideString;
var Vdata: OleVariant);
begin
with DM.ADOQSelect do
begin
Close;
SQL.Clear;
SQL.Text := SQlText;
try
Open;
CldSelect.Active := False;
CldSelect.Active := True;
Vdata := CldSelect.Data;
finally
CldSelect.Close;
Close;
end;
end;
end;
这是我在客户端调用中间层中的函数。
var
sqltxt :string;
dataTemp : Olevariant;
begin
sqltxt := 'select sum(Mark_score) as Mark_score,Mark_id from shiftScore where Mark_shift=1 and Mark_Y='+''''+'2006-01-01'+''''+' group by Mark_id order by Mark_id ';
socketMark.AppServer.SelectAllData(sqltxt,dataTemp);
cdstmep.Data :=dataTemp;
end;
奇怪的是,求和就的不到数据,如果把sum去掉,很正常。那位大哥帮拌解决一下?
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061215121442120.html
下边是我在中间层中的程序,用于返回数据到客户端。
procedure Tappserverforjb.SelectAllData(const SQlText: WideString;
var Vdata: OleVariant);
begin
with DM.ADOQSelect do
begin
Close;
SQL.Clear;
SQL.Text := SQlText;
try
Open;
CldSelect.Active := False;
CldSelect.Active := True;
Vdata := CldSelect.Data;
finally
CldSelect.Close;
Close;
end;
end;
end;
这是我在客户端调用中间层中的函数。
var
sqltxt :string;
dataTemp : Olevariant;
begin
sqltxt := 'select sum(Mark_score) as Mark_score,Mark_id from shiftScore where Mark_shift=1 and Mark_Y='+''''+'2006-01-01'+''''+' group by Mark_id order by Mark_id ';
socketMark.AppServer.SelectAllData(sqltxt,dataTemp);
cdstmep.Data :=dataTemp;
end;
奇怪的是,求和就的不到数据,如果把sum去掉,很正常。那位大哥帮拌解决一下?
是否Mark_score 有Null值?
肯定不是~~
刚才又试了一下,加减和avg都没有问题,唯独这个sum。Mark_score是decimal(9,2)。
单独执行sql看能不能得到数据