procedure TForm_procedurequery.Button1Click(Sender: TObject);
begin
storedproc1.Close;
storedproc1.Params[0].Value:=edit1.Text;
storedproc1.Prepare;
storedproc1.ExecProc;
end;

解决方案 »

  1.   

    按照 tang_xl(唐)所说的,加了个close;虽然不出错了,但却又查不出记录了,按button的时候,dbgrid中都是空的,没记录返回啊
      

  2.   

    查不出记录是因为按你的查询条件的确是没有记录,问题可能在于你的Edit1.text
    换成这样试试吧:
      其中的storeproce1.params[0] .value:=trim(edit1.text);
      

  3.   

    换成storeproce1.params[0] .value:=trim(edit1.text);也不行啊,真TMD见鬼,还请各位帮偶驱驱鬼啊
      

  4.   

    procedure TForm_procedurequery.Button1Click(Sender: TObject);
    begin
    storedproc1.Close;
    storedproc1.Params[1].Value:=edit1.Text;  //默认情况下第一个参数是过程返回值,所以应该用Params[1]而不是Params[0],除非你将storedproc1的参数@RETURN_VALUE删除了。
    storedproc1.Prepare;
    storedproc1.open;
    end
      

  5.   

    补充:对表执行修改、删除、添加记录的存储过程要用Execproc方法,对表只作查询但不作编辑的存储过程用Open方法。
      

  6.   

    procedure TForm_procedurequery.Button1Click(Sender: TObject);
    begin
    storedproc1.Close;
    storedproc1.Params[1].Value:=edit1.Text;
    //默认情况下第一个参数是
    //过程返回值,所以应该用Params[1]而不是Params[0],除非你将
    //storedproc1的参数@RETURN_VALUE删除了才用Params[0]。
    storedproc1.Prepare;
    storedproc1.open;
    //对表执行修改、删除、添加记录的存储过程要用Execproc方法,对表
    //只作查询但不作编辑的存储过程用Open方法。
    end;
      

  7.   

    谢谢gdwyh(gdwyh) 的回答,我该怎么把分结给你啊,请看到的兄台告之一句