加载中…
个人资料
凌独香
凌独香
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,985
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

关于SQL2008【没有返回结果集】的解决方法

(2013-01-24 21:34:43)
标签:

结果集

sql2008

数据库驱动

it

  最近公司要把SQL2000升级到SQL2008,在升级之后经常出现“该语句没有返回结果集”的报错提示,几经查找处理无果,后来因为一个小坚持,最后发现了问题所在。我相信我们的代码,相信我们的系统,哈哈。关于SQL2008【没有返回结果集】的解决方法

  这期间我曾经怀疑过数据库的选项设置有问题,也怀疑过数据库驱动有问题,但是最初没有找到线索。我把正式站点的数据库设置与开发站点的一一对比,没有相异的地方,也检查过数据库驱动,lib里面含有sqljdbc4.jar,似乎也没问题,但是问题恰恰就出现在驱动这里。

  如果你来不及看博文,可以直接跳到最后,其中第2点解决方法也许会没留意到。

  1.网上查找到的解决方法:set nocount on
  网上基本上给出的解决方法就是使用set nocount on,说是SQL2005后对SQL语法较为严谨,原本能在2000上跑的语句到了2005或者2008就不行了。一般出现这种情况是因为写的脚本中先进行增删改,最后又通过select想把结果查出来,此时使用executeQuery()就会报错。

  这种处理方法是在你写的SQL中或是存储过程中写上set nocount on 与 set nocount off即可,示例如下:
  set nocount on 
    your sql
  set nocount off

  这种方法基本上可以解决“没有返回结果集”的问题,如果你尝试之后仍然报错,别泄气,接下来看第2中处理方法,或许对你有帮助。

  2.数据库驱动的解决方法:
  如果1中的方法无效,那么很大程度你忽略了一个问题,那就是数据库驱动。请检查你是否在用sqljdbc.jar,或是带1的版本,类似sqljdbc1xxx.jar。马上把它删掉,确保你在用sqljdbc4.jar这个版本的驱动,而且sqljdbc1xxx.jar不能与sqljdbc4.jar同存,同存会导致系统优先使用sqljdbc1xxx.jar,从而引发在执行SQL出现不兼容问题。最好把WEB SERVICE与项目下的lib文件夹都检查一遍。

  我就是通过删除旧版本的sqljdbc.jar,改用sqljdbc4.jar来解决这个问题的。关于SQL2008【没有返回结果集】的解决方法

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
后一篇:3月21
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    后一篇 >3月21
      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有