FormCreate窗体装载事件中出现非法访问(access violation)的错误,错误行定位在adoquery上,如
txtdepname.Text:=dmall.ADOQdep.fieldbyname('depname').AsString;
dmall.ADOT.Locate('id','bm',[locaseinsensitive]);都出现了非法访问的错误
我用的是delphi7.0 操作系统是xp sp2,以前用delphi6.0 windows 2000 server没有出现类似的错误,
不知道是什么问题??十万火急,请各位大虾帮助,先谢了.

解决方案 »

  1.   

    在tools-debugger options的language Exceptions里添加一行EAccessViolation试试看
      

  2.   

    是不是dmAll还没有Create呢,就调用里面的对象。Create的事件代码放到Show事件里面试试。
      

  3.   

    可能是,DMALL还有没创建它,你就调用它,
    你先把,DMAL创建一下试试,
      

  4.   

    呵呵
    简单简单
    你的窗体都没有生成
    怎么取访问窗体里的控件把这些程序放到form1.onshow里就行了
      

  5.   

    dmall=nil 
    改:
    dmall:=TDataModule.create(self);txtdepname.Text:=dmall.ADOQdep.fieldbyname('depname').AsString;
    dmall.ADOT.Locate('id','bm',[locaseinsensitive]);
      

  6.   

    不知道为什么,我也遇到过,不过我改在show事件中写这些的
      

  7.   

    估计是dmall还没有创建,就调用。
    把那些代码放到onshow里面应该就可以了。
      

  8.   

    综合上面各位朋友的看法,经验证,解决的方法可以有:
    1.formcreate事件中创建dmall,不过这种方法adoquery控件会把记录定位在第一条.
    2.把代码放在onshow事件中
    3.象一楼的朋友所说:在tools-debugger options的language Exceptions里添加一行EAccessViolation程序可以运行,但运行之前还是会弹出一个提示非法访问的对话框,按确定按钮之后程序正常运行.另外,在delphi6.0中没有出现这个问题,不知道是不是版本的问题?