我写了一个SQL Server存储过程,请问我怎么用ADODataSet来调用存储过程返回结果集呢?谢谢!

解决方案 »

  1.   

    with ADODataSet do 
    begin
      close;
      commandtype:=cmdtext;
      commandText:='Exec myProcedure';
      prepared:=false;
      prepared:=true;
      open;  
    end;
      

  2.   

    也可以用adoquery来调用adoquery.close;
    adoquery.sql.clear;
    adoquery.sql.add('exec  myProcedure');
    adoquery.exesql;或者用 clientdataset
    clientdataset.close;
    clientdataset.commandtext:='exec  myProcedure';
    clientdataset.execute;
      

  3.   

    问题是我的存储过程有参数啊。怎么做呢。我是在SQL server2000中
      

  4.   

    比如我的存储过程  PrintDeliver它需要一个@DeliverNo参数
    在SQL sever2000中我直接exec PrintDeliver 'bb'就行了。
    问题是我不知道怎么把这个参数传进去
      

  5.   

    clientdataset.close;
    clientdataset.commandtext:='exec myProcedure :P1,:P2';
    ClientDataset.Params.ParamByName('P1').Value:='1';
    ClientDataset.Params.ParamByName('P2').Value:='2';
    clientdataset.execute;
      

  6.   

    这样也可以,假设有两个参数,分别用edit1,edit2的值传给这两个参数.
    clientdataset.close;
    clientdataset.commandtext:='exec myProcedure '''+edit1.text+''','''+edit2.text+''' ';clientdataset.execute;
      

  7.   

    ADOQuery1.close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text:='EXEC  存储过程名'+'  '+Quotedstr(edit1.Text)+','+Quotedstr(edit2.Text);
    ADOQuery1.ExeSQL;