程序是这样的。
定义了一个数据模块DMD,向DMD中加入一个连接数据库组件SQLConn : TSQLConnection,
一个数据库的执行模块SQLProcSales : TSQLStoredProc,
各属性设置如下:
SQLConn 
  
  ConnnectionName: databaseName   (是MSQL2000)
  Connected: true
SQLProcSales
  SQLConnection:SQLConn
  storedProcName:salesProc
  params: 0-clientICID 
  clientICID的属性是:
  属性是:datatype:ftsamllint,paramtype:ptInput,valaue.type:shortint后台数据库的存储过程如下:
   CREATE PROCEDURE SalesProc @ClientICID int
as
begin
  update ICInfor
set 
  currentCount = currentCount+5,SumCount=SumCount+5
where ICID =@clienticidend
GO
 
源代码如下:
DMD.SQLProcSales.Params.ParamByName('clienticid').Value:=7;
DMD.SQLProcSales.ExecProc;
ShowMessage('proc yes')
运行的时候,程序出现这样的错误,
 list index out of bound(0)
我不明白,为何出现这样的错主误!用上述方法,执行不含参数的过程时,能够通过! 

解决方案 »

  1.   

    DMD.SQLProcSales.Params.ParamByName('@clienticid').Value:=7;
    DMD.SQLProcSales.ExecProc;
    ShowMessage('proc yes')
      

  2.   

    事先要将 TStorProc 的 Params 参数设置好。
      

  3.   

    我在Params中设置好了,祥细请看第一帖!
    同样的谢谢你!
      

  4.   

    DMD.SQLProcSales.Close;
    DMD.SQLProcSales.Refresh;
    DMD.SQLProcSales.Params.ParamByName('clienticid').Value:=7;
    DMD.SQLProcSales.ExecProc;
    ShowMessage('proc yes')
      

  5.   

    TSQLConnection
    这些控件我没用过