设计时在SQL属性里加了查询语句的:select * from JMJDC.设计时能正常显示的,就是在运行时不能显示,加入以下代码就报错:DataMod.AQ_JMJDC.Active:=True;提示:“Access violation at address 0050ED6F in module 'LBDMCJ.exe'.Read of address 0000006C.” 这个怎么回事?请大侠们指点哦,谢谢啦!!!!

解决方案 »

  1.   

    与ADOQuery相关的某个字段或者对象没有初始化,或者已经被释放。仔细检查
      

  2.   

    查下 project->view source,看看窗体的创建顺序
    估计你是在主窗体里调用,此时数据窗口没有create,可以把数据窗口的创建放到前面
      

  3.   

    program LBDMCJ;uses
      Forms,
      Unit_Main in 'Unit_Main.pas' {Frm_LBDMCJ},
      Unit_DataMod in 'Unit_DataMod.pas' {DataMod: TDataModule},
      Unit_SWDTJC in 'Unit_SWDTJC.pas' {Frame_DTJC: TFrame},
      Unit_CHAXUN in 'Unit_CHAXUN.pas' {Frm_chaxun},
      Unit_JMJDC in 'Unit_JMJDC.pas' {Frame_JMJDC: TFrame};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TFrm_LBDMCJ, Frm_LBDMCJ);
      Application.Run;
    end.
      

  4.   

    avtive属性程序里也不用写,只要用到adoquery就行,
      

  5.   

    数据窗口没有自动创建,你需要查查你调用DataMod.AQ_JMJDC.Active:=True的时候,数据窗口有没有创建
      

  6.   

    你把DataMod.AQ_JMJDC.Active:=True 这句删了,或许报错是因为程序还有其他的错误
      

  7.   

    数据库里只放1个adoconnection控件连接数据库就行,不用放其他控件
      

  8.   

    问题解决了,看样子就是窗体顺序的原因,我在project-option-Auto create forms一栏里只保留了主窗体,把DataMod放到Available forms里了,结果就出错。再放回左边就行了,呵呵,谢谢各位啊,菜鸟就是这样,经常被小常识难住,哈