奇怪的情况,我用delphi7和sql2005写了个程序,长时间放置后,第一次读不出数据,第二次才行,不知道什么情况? 我用delphi7和sql server 2005写一个简单的网络数据库程序,主窗口有一个定时器,客户机每1分钟扫描一次服务器上sql server2005数据库,看看有没有自己新数据,程序启动程序后长时间放置,第一次用户登录时,点用户名下拉栏,里面是空的,并报数据库连接错误,第二次再点,用户名就有了,能正常登录,能进行进一步的数据操作。请教大家这是什么情况? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是不是在定时器中写的数据库用名及连接?在FormCreate的时候就初始化连接比较好。 你的程序中直接连接数据库,还是DataSnap方式? 我在建立窗体时进行数据库连接,在定时器内只是用adoquery扫描数据库。 1、使用ADO套接字连接数据库;2、确定连接上数据库后,才能搜索刷新数据; 已经使用adoconnection连接数据库,用户登录后能进行查询、增加、删除数据库操作,只是长时间开着程序,不去动它,再次使用程序进行用户登录时第一次点用户名下拉栏时会报连接错误并且没有用户名列表,第二次点下拉拦时用户名就有了,能进行正常登录和数据库操作。 这种情况,似乎是与连接数据库断了,常理连接数据库后,不会自动断线。sql server 数据库服务启动以后没有异常的话是一直在运行的。MYSQL有小时的限制,到了就自动断开,需要重新连接。需连接都设成的永不过期。 此外,由于网络不稳定可能导致数据库连接断开。你的数据库与程序在同一机器上,就不存在此问题。如果访问局域网数据库,此类问题,大有可能。 还有MSSQL服务器程序的问题,也可能出现自动断线问题。需要重新安装MSSQL Server程序。 建议:1、找一下是否设置上剖,或是数据库(sql server 2005)自身出现问题,长时间未数据读取,就断线;重装一下SQL Server程序;2、建议使用Timer控件设置一个心跳包,几分钟,就连接一下数据, 这样,可以保持长时间连接。 定时检查一下,发现断开了,就重新连接一下! 程序中设了一个定时器,每一分钟用adoquery去查询一次数据库,看看是否有自己的数据,并且根据这个adoquery中的select语句是否正常运行,若出错,就用adoconnecttion自动重连数据库。从程序运行情况看,自动重连数据库是运行正常的,没有出现定时器中adoquery运行报错。 ADOCONNECTION的KEEPCONNECTION设置为TRUEADOQUERY的PREPARED设置为TRUE再试试如果没有ADOCONNECTION的话,加一个去试试 如何控制OLE嵌入的Excel? Delphi2005 性能测试 挑战高手,寻求帮助:关于嵌入ie浏览器新建窗体问题 有关记录更新的问题 还是有关DBF的问题 一年了,找不到工作,闹心,散分 Delphi 如何读己保存'Sql'文件 求一个读入本地文本,然后随机排序输出的例子 关于修改一个表中数据后,同时也能修改另一个表中数据的问题,请帮忙! 如何判断一个光标位置: 关于扫描件中二维码的生成和识别 delphi调用rest接口开发N多求助
2、确定连接上数据库后,才能搜索刷新数据;
此外,由于网络不稳定可能导致数据库连接断开。你的数据库与程序在同一机器上,就不存在此问题。如果访问局域网数据库,此类问题,大有可能。
还有MSSQL服务器程序的问题,也可能出现自动断线问题。需要重新安装MSSQL Server程序。 建议:
1、找一下是否设置上剖,或是数据库(sql server 2005)自身出现问题,长时间未数据读取,就断线;重装一下SQL Server程序;
2、建议使用Timer控件设置一个心跳包,几分钟,就连接一下数据, 这样,可以保持长时间连接。 定时检查一下,发现断开了,就重新连接一下!
ADOQUERY的PREPARED设置为TRUE
再试试如果没有ADOCONNECTION的话,加一个去试试