这是DELPHI自带帮助的内容: The following code cycles through the datasets returned by a stored procedure.var TempDataSet: TCustomSQLDataSet; nRows: Integer; begin TempDataSet := SQLStoredProc1; // start with 1st record set while TempDataSet <> nil do begin TempDataSet.First; while not TempDataSet.Eof do begin // process each record TempDataSet.Next; end; if TempDataSet <> SQLStoredProc1 then // don抰 free the original! TempDataSet.Free; TempDataSet = SQLStoredProc1.NextRecordSet; // get next set end; end;
//如果针对ADO...则大同小异... //大致下面这样.. var aintf:_Recordset; RecordsAffected:OleVariant; begin // .... ADOStoredProc1.ExecProc; .... aintf:=ADOStoredProc1.Recordset; while Assigned(aintf) do begin //.....处理当前记录集. aintf:=aintf.NextRecordset(RecordsAffected);//取下一个记录集 end;
一个STOREPROC只有一个RECORDSET域,无法返回多个数据集的.
如果你想要处理多个数据集,你就应当用多个STROEPROC.
The following code cycles through the datasets returned by a stored procedure.var
TempDataSet: TCustomSQLDataSet;
nRows: Integer;
begin
TempDataSet := SQLStoredProc1; // start with 1st record set
while TempDataSet <> nil do
begin
TempDataSet.First;
while not TempDataSet.Eof do
begin
// process each record
TempDataSet.Next;
end;
if TempDataSet <> SQLStoredProc1 then // don抰 free the original!
TempDataSet.Free; TempDataSet = SQLStoredProc1.NextRecordSet; // get next set
end;
end;
//大致下面这样..
var
aintf:_Recordset;
RecordsAffected:OleVariant;
begin
//
....
ADOStoredProc1.ExecProc;
....
aintf:=ADOStoredProc1.Recordset;
while Assigned(aintf) do
begin
//.....处理当前记录集.
aintf:=aintf.NextRecordset(RecordsAffected);//取下一个记录集
end;