下面这段代码是向存储过程GJGL中插入数据,可是插入数据时却显示:list index out of bounds(0).
procedure TForm1.btnCommitClick(Sender: TObject);begin
SQLStoredProc1.StoredProcName:='GJGL';SQLStoredProc1.Params.Clear;
with SQLStoredProc1.Params.CreateParam(ftstring, 'gonjumingcheng', ptInput) do      //在这里加了断点1,
 AsString:= Edit1.text;
with SQLStoredProc1.Params.CreateParam(ftString, 'jibendanwei', ptInput) do
 AsString:=Edit2.text;
with SQLStoredProc1.Params.CreateParam(ftstring, 'baoyangzhuangkuang', ptInput) do
 AsString:=edit3.Text;
with SQLStoredProc1.Params.CreateParam(ftFMTBCD, 'gourujiage', ptInput) do
 AsFMTBCD:=strtobcd(edit4.Text);
with SQLStoredProc1.Params.CreateParam(ftInteger, 'shuliang', ptInput) do
 AsInteger:=strtoint(edit5.Text);
with SQLStoredProc1.Params.CreateParam(ftstring, 'cunfangdidian', ptInput) do
 AsString:=edit6.Text;
SQLStoredProc1.ExecProc;SimpleDataSet1.Refresh;
end;本人试着加了断点,欲观察程序执行到断点1时变量gonjumingcheng的变化,可是显示:process not accessible。请问这段代码如何调试?

解决方案 »

  1.   

    监测 SQLStoredProc1.Params 内容。
      

  2.   

    gonjumingcheng是向存储过程传递的参数,运行程序时我在控件里已经赋值了,怎么监测SQLStoredProc1.Params 内容?
      

  3.   

    procedure TNPService.deletebasicinfo(selfid, mode: OleVariant;
      out rt: SYSINT);
    begin
      pp.ProcedureName:='P_DeleteBasicInfo';
      pp.Parameters.Refresh;
      pp.Parameters.ParamValues['@selfid']:=selfid;
      pp.Parameters.ParamValues['@mode']:=mode;
      pp.ExecProc;
      rt:=pp.Parameters.ParamByName('@return_value').Value;
    end;
      

  4.   

    我用的是dbexpress连接数据库。
      

  5.   


    怎么监测 SQLStoredProc1.Params 内容?
      

  6.   

    被插入的表中还有一个靠触发器插入的自动增值的编号字段,不知是否与list index out of bounds(0)的出现有关。