本人想用ADOStoredProc对数据库的数据进行操作,代码如下(只是试验一下的简单代码)
procedure TForm1.Button1Click(Sender: TObject);
begin
   ADOStoredProc1.Parameters.ParamByName('@photo').Value:=edit2.Text;
   ADOStoredProc1.Parameters.ParamByName('@card').Value:=edit1.Text;;
   ADOStoredProc1.ExecProc;end;
以上在DEPHI中写的(数据组件连接已经静态设置好了)
CREATE PROCEDURE [edit] 
@photo char,
@card char
AS
 
  update  guest  set card=@card where phote=@photo
GO以上在SERVER中定的存储过程的代码,
本人一运行后,发觉不能修改表中数据,但在查询分析器中能实现更新,请问我哪里出错,请指教!

解决方案 »

  1.   

    ADOStoredProc1.Parameters.ParamByName('photo').Value:=edit2.Text;
       ADOStoredProc1.Parameters.ParamByName('card').Value:=edit1.Text;;//
      

  2.   

    要按你的写法,应当是:
    ADOStoredProc1.Parameters.CreateParameter
                         ('@photo',ftstring,pdinput,参数长度,edit1.text);
    ADOStoredProc1.Parameters.CreateParameter
                         ('@card',ftstring,pdinput,参数长度,edit2.text);
      

  3.   

    存储过程中变量定义有问题,应该给变量指定具体的长度,如@photo char(10),否则就按一位算