var
  vSql:String;
begin
  vSql:='select * from table1'+#13#10+'select * from table2';
  with ADOQuery do
  begin
    Sql.Text:=vSql;
    OPen;{
          在SQL Server的查询分析器里 ,如果执行 vSql这样的一个SQL语句,会返回两个结果集
           但ADOQuery只能返回第一个,请问各位大侠在Delphi里如果执行一批SQL语句,怎么样知道返回多少个结果集,并且取得各个结果集
          
        }
  end;end;

解决方案 »

  1.   

    var
      vSql,vSql1:String;
    begin
      vSql:='select * from table1';
      vSql1:='select * from table2';
      with ADOQuery do
      begin
        close;
        sql.clear;
        sql.add(vSql);
        sql.add(vSql1);
        OPen  end;
      

  2.   

    var
      vSql,vSql1:String;
    begin
      vSql:='select * from table1';
      vSql1:='select * from table2';
      with ADOQuery do
      begin
        close;
        sql.clear;
        sql.add(vSql);
        sql.add(vSql1);
        OPen;
      end;
      

  3.   

    这样好像不行.这样应该可以:var
      vSql,vSql1:String;
    begin
      vSql:='select * from table1';
      vSql1:='select * from table2';
      with ADOQuery1 do
      begin
        close;
        sql.clear;
        sql.add(vSql);
      end;
      with ADOQuery2 do
      begin
        close;
        sql.clear;
        sql.add(vSql1);
      end;
      

  4.   

    ADOQuery的方法中有NextRecordSet方法,可试试