ADOStoredProc1.Close;
ADOStoredProc1.ProcedureName:='P_Add';
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters[1].value:=edit1.Text;
ADOStoredProc1.Parameters[2].value:=edit2.Text;
ADOStoredProc1.Parameters[3].value:=edit3.Text;
ADOStoredProc1.Prepared;
sp1.ExecProc;
第一次保存记录成功,第二次出错提示如下:
Project Project1.exe raised exception class EAccessViolation with message'Access violation at address 00480138 in module' Project1.exe'.Read of address 0000009D'.Process stopped. Use Step or Run to continue.
怎么解决???

解决方案 »

  1.   

    ADOStoredProc1.Close;
    ADOStoredProc1.ProcedureName:='P_Add;1';//主意此句
    ADOStoredProc1.Parameters.Refresh;
    ADOStoredProc1.Parameters[1].value:=edit1.Text;
    ADOStoredProc1.Parameters[2].value:=edit2.Text;
    ADOStoredProc1.Parameters[3].value:=edit3.Text;
    ADOStoredProc1.Prepared;
    sp1.ExecProc;
      

  2.   

    根据错误显示好像不是数据库方面的错误引发的,而是Delphi本身引发的,很可能是某些资源引用错误
    ,比如没有创建的对象就使用了该对象,造成对象的地址不能正确访问,你最好调试一下在那一条记录出错的
    Project Project1.exe raised exception class EAccessViolation with message'Access violation at address 00480138 in module' Project1.exe'.Read of address 0000009D'.Process stopped. Use Step or Run to continue.
      

  3.   

    按意思就是说你访问了非法地址
    是不是你query的操作数据库出了问题
    或者有东西没有正常关闭、释放?