Foxtable(狐表)用户栏目专家坐堂 → 项目执行SQL语句超时已过期


  共有2452人关注过本帖树形打印复制链接

主题:项目执行SQL语句超时已过期

帅哥哟,离线,有人找我吗?
hopestarxia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:914 积分:6556 威望:0 精华:0 注册:2013/8/10 18:33:00
项目执行SQL语句超时已过期  发帖心情 Post By:2018/3/21 10:43:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
aduydgd
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:681 积分:5332 威望:0 精华:0 注册:2011/12/26 20:43:00
  发帖心情 Post By:2018/3/21 10:49:00 [只看该作者]

你代码贴出来,看看是否有问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 12:03:00 [只看该作者]

贴出具体代码说明问题

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:914 积分:6556 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2018/3/21 22:09:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:914 积分:6556 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 23:17:00 [只看该作者]

foxtable也有,参考

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:914 积分:6556 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2018/3/21 23:43:00 [只看该作者]

谢谢老师,问题已解决,加入了代码cmd.CommandTimeout = 0

 回到顶部