请问如何用adostoredproc组件执行一个带参数的存储过程。  
SQL  SERVER  的存储过程如下:  
CREATE  PROCEDURE  gg  
@sun1_1  char(10)  
 AS  
select  *  FROM  SUN  where  sun1=@sun1_1  
GO  
下面不对,,,我该如何改正呢。  
adostoredproc1.Connection:=adoconnection1;  
adostoredproc1.ProcedureName:='gg';  
adostoredproc1.Active:=true;  
adostoredproc1.Prepared:=true;  
adostoredproc1.fieldByName('@sun1_1').asstring:=edit1.Text;  
adostoredproc1.ExecProc;  
adostoredproc1.Open;  
datasource1.DataSet:=adostoredproc1;  
dbgrid1.DataSource:=datasource1;  
注adoconnection1没有问题 
 
哪里错了告诉我如何改正好吗 
 
 
 
 
 
 

解决方案 »

  1.   

    adostoredproc1.Active:=true;  
    adostoredproc1.Connection:=adoconnection1; 
    adostoredproc1.ProcedureName:='gg';  
    adostoredproc1.fieldByName('@sun1_1').asstring:=edit1.Text;  
    adostoredproc1.Prepared:=true;  
    adostoredproc1.ExecProc;  
    datasource1.DataSet:=adostoredproc1;  
    dbgrid1.DataSource:=datasource1;  
      

  2.   

    adostoredproc1.Connection:=adoconnection1;  
    adostoredproc1.ProcedureName:='gg';  
    'adostoredproc1.Active:=true; 这句怎么会在这里??  
    adostoredproc1.Prepared:=true;  
    'adostoredproc1.fieldByName('@sun1_1').asstring:=edit1.Text; 这句好象也不对,试试下面的 
    adostoredproc1.Params[0].asstring:=edit1.Text
    adostoredproc1.ExecProc;  
    'adostoredproc1.Open; 还要这句干什么???? 
    datasource1.DataSet:=adostoredproc1;  
    dbgrid1.DataSource:=datasource1;
      

  3.   

    adostoredproc1.Connection:=adoconnection1;  
    adostoredproc1.ProcedureName:='gg';  //名字错误,你在设计期连接,在ProcedureName下拉框中可以看到都加了一些';1'之类的东东.
    //adostoredproc1.Active:=true;  //参数还没有赋打开干嘛?
    //adostoredproc1.Prepared:=true;  //参数还没有赋prepare干嘛?
    adostoredproc1.close;
    adostoredproc1.fieldByName('@sun1_1').asstring:=edit1.Text;
    adostoredproc1.Prepared;  
    adostoredproc1.ExecProc;  
    //adostoredproc1.Open;  不用open了
    datasource1.DataSet:=adostoredproc1;  
    dbgrid1.DataSource:=datasource1;  
      

  4.   

    adostoredproc1.Active:=true;  //不要
    adostoredproc1.Connection:=adoconnection1; 
    adostoredproc1.ProcedureName:='gg';  
    adostoredproc1.fieldByName('@sun1_1').asstring:=edit1.Text;  //改成
    adostoredproc1.Params[0].asstring:=edit1.Textadostoredproc1.Prepared:=true;  
    adostoredproc1.ExecProc;  
    datasource1.DataSet:=adostoredproc1;  
    dbgrid1.DataSource:=datasource1;