出现这样的情况太多了,不容易分析.打个比方,如果在一台机器运行Delphi程序,而这台机器上没有安装BDE,你的程序用的是BDE,就会出现类似的问题.还有可能还是你数据库连接上的问题,看看那个窗体的数据库连接以及用到的数据控件.

解决方案 »

  1.   

    No.1 最可能的原因是静态打开数据
    静态打开数据:设计区就打开数据(如:Table1.Active := True)
    这样一些事件将在窗体创建(FormCreate)之前触发(如:Table1AfterOpen;DataSource1DataChange)
    这样如果访问动态控件就会出错
    并且当程序移到其他机子上时很容易崩溃
    所以数据集要采用动态打开方式注意:当Delphi需要表中的信息时会自动静态打开数据(请手工恢复)
      

  2.   

    关注!关注!
    我的程序也出现了类似的问题:Access violation at address 77EB00E9 in module 'kernel32.dll',Read of address 00000040.
    什么原因?!
      

  3.   

    关注!关注! 
    我的程序也出现了类似的问题:Access  violation  at  address  77EB00E9  in  module  'kernel32.dll',Read  of  address  00000040. 
    什么原因?!
    我是在ADOQuery中写的Sql:
    with dataform.ADOQuery1 do
                begin
                    close;
                    sql.Clear;
                    sql.Add('delete from Accidents where ');
                    sql.Add('AccidentID');
                    sql.Add('=:is_accid');
                    parameters.ParamByName('is_accid').Value:=is_accid;
                    ExecSql;
                end;
    也会出现上述问题,请高手指教!
      

  4.   

    try:Tadoquery.ccurserlocation=cluseserver
      

  5.   

    我的程序也出现这个问题,是在关闭窗体是出现的,
    并且是在窗体在打开,关闭多次后才出现的。
     该窗体仅有一个DBGRID,ADODATASET,DATASORCE,
    几个按钮,操作也非常简单,没有用到任何指针,数组等操作,
    就是出现此问题,实在头痛。
     我想是该窗体文件坏掉了,但我不想重新建立该窗体,
    怎么办?
      

  6.   

    我的程序也出现这个问题,是在关闭窗体是出现的,
    并且是在窗体在打开,关闭多次后才出现的。
     该窗体仅有一个DBGRID,ADODATASET,DATASORCE,
    几个按钮,操作也非常简单,没有用到任何指针,数组等操作,
    就是出现此问题,实在头痛。
     我想是该窗体文件坏掉了,但我不想重新建立该窗体,
    怎么办?