你的adosp中没有导入参数或者与之相连的cds没有导入参数,或者导入了没有指定输入输出类型,在数据库端存储过程里写的参数不会被delphi自动加载,最好手工加载一下,在编辑窗口里该控件上反键增加parameters即可。
     给参数赋初值同样可以在delphi里完成,就在每个参数对应的object inspector里有value属性。

解决方案 »

  1.   

    with djxx_dm.adostoredptoc do
        begin
          ProcedureName:='insert_x';      Parameters.refresh; //加上这一句
        
          Parameters.ParamByName('@x_bh').Value:=trim(x_bh_edit.text);
          Parameters.ParamByName('@x_jc').Value:=trim(x_jc_edit.Text);
          Parameters.ParamByName('@x_qc').Value:=trim(x_qc_edit.Text);
          Parameters.ParamByName('@x_bz').Value:=trim(x_bz_memo.Text);
          execProc;
        end;
      

  2.   

    如果你要用StoreProcdure控件的话,一定要设置参数的ParamType是Input还是Output及DataTypeCREATE PROCEDURE [insert_x]
    (@x_bh [nchar](10),
    @x_jc  [nchar](20),
    @x_qc [nchar](50)='系全称',注意你的有默认值的参数一定要写在最后,否则无法正确调用默认值,调用时默认参数不写即可
      

  3.   

    我也出现过这种问题.最后发现可能是Delphi的问题.你可把原来的那个StoreProcdure控件删掉,再添加一个相同名称的StoreProcdure控件,重新连接即可.