我用Delphi开发的一个程序,正常操作时能正常运行,可是如果一段时间不去动它(比如把它最小化),过了一段时间(比如10分钟)之后,再点击程序要操作时,系统就会报“数据库超时”!请问各位这该如何解决!!由于小弟很菜,请各位在说明时尽量详细一些,万分感谢!!!

解决方案 »

  1.   

    不知道你用的什么连接数据库,
    应该有个参数,可以设置保持数据库连接,好象是keepconnection==true;
      

  2.   

    对一定要保持连接。
    keepconnection==true
      

  3.   

    需要保持数据库的连接,最好在一开始的时候就设置连接为true。
    另外楼上的大歌是用Java或者C用多了。delphi应该是:
    keepconnection:=true
      

  4.   

    首先感谢你们的回复!此外我想说的是,程序中我使用的是TADOConnection和TADOQuery链接数据库的,TADOConnection的确有keepconnection的属性,而且我也已经将它设为True,但在代码中没有写keepconnection:=true(不知道这会不会有关系?),不知道还有没有其他解决的办法?谢谢
      

  5.   

    你试下这个方法:在form或datamodule 的 onshow() 或 onactive() 事件中,将数据库连接重新关闭打开,或者设置一个定时器控件,每隔一段时间扫描一次,看看数据库连接是否可用,如果不可用就重新关闭打开。以上的方法应该会有效果,但只是一种应急的方法,不是根本解决问题的方法,要找到产生问题的根本原因,可能是数据库某个参数没设置好。
      

  6.   

    再次麻烦你们实在不好意思!我想说的是,我连接数据库的方法是使用TADOConnection,而具体数据库指向(即TADOConnection的Provider属性)等信息是通过与执行程序在同一目录下的udl文件设定的,不知道udl会不会导致我上面说的那种问题?
      

  7.   

    有可能
    关键看你是如何通过文件设置的,
    建议你好好检查这一段代码,
    如果设置不当,
    当adoconnection重新获取连接时,
    失去连接参数,就可能导致长时间连接不上,
    最后提示‘数据库连接超时’