第一步:在Sql sever建了一个表
       create table1(
         a int
       )第二步:然后建一个往table1表插入一条记录的存储过程.
CREATE PROCEDURE Insert_Table1  
@a int
AS
begin
 insert into table1 (a) values (@a)
end;
GO     //测试成功.3)建好数据连接。新开delphi工程。加入DBE的TStroedProc控件,连到刚才建的
存储过程。并设置了参数 @a 的 ParamType 为 ptInput.
然后执行:procedure TForm1.Button1Click(Sender: TObject);
begin
  StoredProc3.ParamByName('@a').AsInteger := 10;
  StoredProc3.ExecProc;
end;抱错:EDBEngineError with message "General SQL Error,为能找到存储过程
Insert_table1"是怎么回事呀!?????另外还有一个问题:  我看StoredProc1参数里多了一个@Result参数,是不是SQL Sever
默认产生的呀??  谢谢!

解决方案 »

  1.   

    谁要是能帮我试一下就好了,以上写的就是全部操作,我弄了好长时间,不知道是怎么回事,
    另外StoredProc3应为StoredProc1.
      

  2.   

    用ADO多好,而且你创建这样的存储过程和直接用Insert语句添加我觉得效率反而变得有低了,如果用ADO的话,这样可以:
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into table1 (a) values (@a)');
    adoquery1.ParamByName('@a').AsInteger := 10;
    adoquery1.execsql;
      

  3.   

    呵呵过程序调用方法
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('execute 过程名 '''+传值表.....+''')');
    adoquery1.execsql;
    其实这个简单的插入就不用过程了吧过程一般是解决一些复杂的计算、统计哦