我在FormShow事件中写有以下语句:
try
  DataModule1.Adoconnection1.Connected:=true;
Except
  ShowMessage('数据库连接失败!');
end;
意思应该是与数据库连接不成功时,显示'数据库连接失败!'的信息提示
不知为何当数据库连接不成功时,不会显示以上信息,且窗体也没显示出来,
程序就死在那里了.请各位指教. 
我在delphi环境中运行或直接运行.exe文件都是以上现象,
且已将Tools中的debugger option中的stop on delphi Exceptions勾掉了

解决方案 »

  1.   

    你把Adoconnection1.connectiontimeout 设得短一点.就能看到效果了.
      

  2.   

    当然你连数据库的时候当数据库不在就要好久,你在delphi中运行肯定是这样的。
    你不要在delphi中运行,直接运行生成的exe文件,当数据库不在是要连那么久不在则是except后的代码。如果不想让主程序停在那,就把链接数据库的程序放在线程里!
      

  3.   

    1、超时
    try
      DataModule1.Adoconnection1.Connected:=true;
    Except
      ShowMessage('数据库连接失败!');
    end;
    2、ShowMessage('数据库连接失败!');窗口有可能在后面
    3、最好的方式是写文本文件,看在哪里出错的
    4、  try
      ...
      except
        on E: Exception do showmessage(E.Message);
      end;
      

  4.   

    应该把这段代码写在Form的oncreate事件里
    如果使用了数据模板(data module),最好可以写在它的oncreate里
      

  5.   

    stweiguo(真水先生)说的不错
    主窗体创建的时候,data module可能还没有创建
      

  6.   

    这个问题我也碰到过,主要是ADO一般默认30秒的连接时间
    ADOConnection1.CommandTimeout:=5   你改成这样就可以了
      

  7.   

    你把Adoconnection1.connectiontimeout 设得短一点.
      

  8.   

    Adoconnection1.connectiontimeout 默认是30秒,要么把它设短.要么想办法把连接合理的终止或断开掉!
      

  9.   

    http://www.39av.com/TG.asp?TGuser=yyq_leaf
    休息以下,看看电影吧,呵呵,免费的
      

  10.   

    实际上呢,我用的是从网上下的一个数据库控件包ZEOSDB中的TZConnection控件, 我看了一下它没法设置超时时间,没这个属性.因为用这个控件的人可能不多,所以问的时候我是以AdoConnection问的,我认为实质应该是一样的,除了改变超时时间,还有没有其他什么好的办法呀
      

  11.   

    按道理没有这么慢的,要不把代码的逻辑将详细点 。你的DataModal自动创建就可以了 ,没有必要放到一个窗体的Create事件中。
    直接在DataModal的OnCreate事件中检测连接状况就可以了。
      

  12.   

    放到FormActivate事件中看看。跟跟程序,搞清楚程序到底死在哪了