ADOStoredProc调用Oracle存储过程,想让存储过程返回多个数据集,怎么操作?

解决方案 »

  1.   

    无法做到!
    一个STOREPROC只有一个RECORDSET域,无法返回多个数据集的.
    如果你想要处理多个数据集,你就应当用多个STROEPROC.
      

  2.   

    这是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;
      

  3.   

    //如果针对ADO...则大同小异...
    //大致下面这样..
    var
      aintf:_Recordset;
      RecordsAffected:OleVariant;
    begin
    //
    ....
    ADOStoredProc1.ExecProc;
    ....
    aintf:=ADOStoredProc1.Recordset;
    while Assigned(aintf) do
    begin
      //.....处理当前记录集.
      aintf:=aintf.NextRecordset(RecordsAffected);//取下一个记录集
    end;