TADOQuery用法在TADOQuery的语句上面输入如下:Select * from TableaSelect * from Tableb那么会出来两个结
TADOQuery用法
在TADOQuery的语句上面输入如下:
Select * from Tablea
Select * from Tableb
那么会出来两个结果集,可是在DELPHI中如何可以获取其中一个?在SQL中会分成两个窗口来显示,但是DELPHI只显示了第一条语句的结果。请问要如何操作才可以把这样的语句绑定?
[解决办法]
delphi的query不支持多结果集, 只能分开处理.
存储过程要想适用于delphi, 就对返回结果做下处理
[解决办法]1、TClientDataSet可以,我就是这样用的,注意返回值是OleVariant类型,获得返回值后,可以这样操作:
cds1,cds2,cds3,cds4,cds5:TClientDataSet;
cds1.Data := vData1;
cds2.Data := vData2;
cds3.Data := vData3;
cds4.Data := vData4;
cds5.Data := vData5;
TDataSource.DataSet=TClientDataSet就可以了
2、但是如果你一定要用TADOQuery,那么你直接qry_tmp.RecordSet := NextRecordset(i_Rst);
3、代码
function GetStastic_DoingQuery(var vData1, vData2, vData3,
vData4, vData5: OleVariant): Boolean;
var
i_Rst:Integer;
s_Depart,s_Finished:String;
s_ProcCode,s_MapNo,s_PlanDate:String;
qry_tmp:TADOQuery;
dsp_tmp:TDataSetProvider;
begin
Result := False;
s_Depart := Depart;
s_Finished := Finished;
s_ProcCode := ProcCode;
s_MapNo := MapNo;
s_PlanDate := PlanDate;
try
qry_tmp:=TADOQuery.Create(nil);
dsp_tmp:=TDataSetProvider.Create(nil);
dsp_tmp.DataSet := qry_tmp;
with adq_SQL do begin
Close;
SQL.Clear;
SQL.Add('exec 存储过程名称及参数列表');
if s_PlanDate<>'' then
SQL.Add(','+quotedstr(s_PlanDate));
Open;
qry_tmp.RecordSet := RecordSet;
vData1 := dsp_tmp.Data;
qry_tmp.RecordSet := NextRecordset(i_Rst);
vData2 := dsp_tmp.Data;
qry_tmp.RecordSet := NextRecordset(i_Rst);
vData3 := dsp_tmp.Data;
qry_tmp.RecordSet := NextRecordset(i_Rst);
vData4 := dsp_tmp.Data;
qry_tmp.RecordSet := NextRecordset(i_Rst);
vData5 := dsp_tmp.Data;
end;
Result := True;
finally
if Assigned(qry_tmp) then
qry_tmp.Free;
if Assigned(dsp_tmp) then
dsp_tmp.Free;
end;
end;