以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  项目执行SQL语句超时已过期  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116203)

--  作者:hopestarxia
--  发布时间:2018/3/21 10:43:00
--  项目执行SQL语句超时已过期
项目中一个功能按钮要执行比较多的SQL语句,一运行总是提示”超时已过期“,
但是将SQL语句直接放到查询分析器中去执行还是比较快的,不出超时已过期的提示,请问有什么方法可以解决。


--  作者:aduydgd
--  发布时间:2018/3/21 10:49:00
--  
你代码贴出来,看看是否有问题
--  作者:有点甜
--  发布时间:2018/3/21 12:03:00
--  

贴出具体代码说明问题

 

加入msgbox,调试哪句代码出错 http://www.foxtable.com/webhelp/scr/1485.htm

 


--  作者:hopestarxia
--  发布时间:2018/3/21 22:09:00
--  
老师都 是直接运行SQL语句,SQL语句在SQL查询分析器中直接执行是没有报错的。
这个放到代码中,有时能执行过去,大概20%左右,有80%的情况都提示超时也过期。
我怀疑有可能是查询代码太长而不是整个代码有问题的原因,因为在SQL查询管理器里直接执行也是要一会时间才执行完成的。
SQL语句优化上也不好进一步优化了。


--  作者:hopestarxia
--  发布时间:2018/3/21 22:36:00
--  
老师,查到这样的解决方法,这个该怎么结合到咱们的程序里试试呢?

用VB做SQL数据库的查找程序,由于数据库比较大,查询时报“超时已过期”的错误提示,在open前,添加ADOCN.CommandTimeout = 0,即可解决!

代码如下:

    Dim pConnStr As String
    pC
    If ADOCN.State = 1 Then ADOCN.Close
    ADOCN.ConnectionString = pConnStr
    ADOCN.CursorLocation = adUseClient
    ADOCN.Mode = adModeShareDenyNone
    ADOCN.CommandTimeout = 0
    ADOCN.Open


--  作者:有点甜
--  发布时间:2018/3/21 23:17:00
--  

foxtable也有,参考

 

http://www.foxtable.com/webhelp/scr/0696.htm

 


--  作者:hopestarxia
--  发布时间:2018/3/21 23:43:00
--  
谢谢老师,问题已解决,加入了代码cmd.CommandTimeout = 0