我在向数据库中增加数据时,产生异常:Project Hocm_sys.exe raised exception class EAccessViolation with 
message 'Access violation at address 004B40B8 in module
'Hocm_sys.exe'. Read of address 00000060'. Process stopped. Use
Step or Run to continue.然后光标就停在: "with DataM.Loginadoq do" 这一行.请各位大虾帮忙解决下,小弟在此谢过了!

解决方案 »

  1.   

    你应该是在调试的时候报错的吧~~这个的话没有关系,如果是楼上所说的数据重复的问题,在直接运行程序后,只要重复的程序会不插入数据并自动执行下一个循环,你可以在EXECSQL之前用个TRY,然后设置一个整形变量,在EXECDQL下面:i:=i+1看看到底执行了多少条数据
      

  2.   

    下面是我的代码,请各位大虾指点啊!谢谢!
    procedure TLogin_M.Button1Click(Sender: TObject);
    var
      str : string;
    begin
      if (Edit1.Text = '') or (Edit2.Text = '') then
        showmessage('用户名或密码不能为空!')
      else
      begin
        with Data_M.adoqLogin do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select * from user_table where user_name = ''' + trim(Edit1.Text) + '''');
          ExecSQL;
        end;    str := Data_M.adoqLogin.fieldbyname('user_pwd').AsString;
        if (str = Edit2.Text) then
          showmessage('登录成功!')
        else
          showmessage('用户名或密码错误!');
      end;
    end;注:Data_M是数据模块的NAME; adoqLogin是ADOQuerry的NAME; user_table是表名; user_name和user_pwd是表中的列名;.
      

  3.   

    是不是你的Data_M或adoqLogin其中一个没创建好啊?
      

  4.   

    to 楼上.
       用OPEN不用EXECSQL
      

  5.   

    错误是停留在 with Data_M.adoqLogin do 这句话上,提示的异常如第一次发贴中所示!
    Data_M、adoqLogin创建有什么需要注意的吗?
    用Open也不行!
    请大虾指点!谢谢!
      

  6.   

    可能是DataM 未实例化,检查一下确保数据模块 DataM  比 TLogin_M 窗口先创建,即在Project->Options中,设置DataM  在TLogin_M的上边或者在Project->View source手工编辑代码也可以
      

  7.   

    to楼上:
    主程序如下所示:
    begin
      Application.Initialize;
      Application.CreateForm(TData_M, Data_M);
      Application.CreateForm(TLogin_M, Login_M);
      Application.Run;
    end.不知道这样是不是对的!但我运行时会提示登录失败!