为何用ADOStoredProc1控件连接到存储过程时老是提示:需要参数@yhbh,但未提供该参数!
存储过程的内容:
    CREATE PROCEDURE InsertCbjl
       @yhbh varchar(10),
       @sbbh varchar(10),
       @yslx varchar(15),
       @dj      float(8)                 
 AS
    insert cbjl (yhbh,sbbh,yslx,dj)  select yhbh,sbbh,yslx,sj as dj  from sbzl
GO
顺便问一下,就是我要在一个表格中添加一条记录的同时,也在另一个表中添加记录.有没有更好的办法?我的意思是除了直接写SQL语句外?

解决方案 »

  1.   

    不解,你存储过程什么意思,是不是要把一条记录同时插如到两个表
    CREATE PROCEDURE InsertCbjl
           @yhbh varchar(10),
           @sbbh varchar(10),
           @yslx varchar(15),
           @dj      float(8)                 
     AS
        insert sbzl (yhbh,sbbh,yslx,dj)  values ( @yhbh,@sbbh,@yslx,@dj)
        insert cbj1 (yhbh,sbbh,yslx,dj)  values ( @yhbh,@sbbh,@yslx,@dj)
    GO
    你也可以用触发器
      

  2.   

    是要把同一条记录插到两个表中,就是在为sbzl新增记录的同时,将这些数据也新增到cbjl中!!可在运行时提示没有提供参数~~晕.给我个触发器的例子啊~简单的就好了!
      

  3.   

    2个表,test和test1,都只有mstr(varchar)一个字段
    在test上建立触发器,代码如下:
    CREATE TRIGGER [insert_test] ON [dbo].[test] 
    after INSERT
    AS
    insert into test1 select mstr from inserted
      

  4.   

    不论通过什么手段,只要向test表插入记录,该触发器就会被触发。比如delphi向test中插入数据,vb,vc等,或者直接通过企业管理器等。触发器是数据库侧的东东,写好后不用显示调用的,数据库系统会帮你自动完成的。
      

  5.   

    晕啊~~~还有一个问题~~~比较麻烦了.大致是这样的,窗体上有一个treeview显示了所有的区域.dbgrideh中显示的是该区域的所有用户记录.现在:
    (1)对表格中的数据作修改,只须改一个字段,当改完这个字段,方向键向下移时自动计算其它的字段值~~~这个没问题
    (2) 当修改完一条记录进入下一条记录时,自动保存上一条记录,并将下一条记录设为编辑状态
    (3) 判断表格中的记录是否到结尾.如果是最后一条,再按下方向键时,则自动进入下一区域.即移动树的节点到下一节点中.如果该区域中的用户记录不为空,则将焦点自动移到表格上,继续作相同的操作!
    _____________________有没有比较简单一点的方法啊??这些操作是不是一定要写在同一个事件中???给点意见~~~