關于SQL2008【沒有返回結果集】的解決方法 .
系統
1948 0
源地址:
http://blog.sina.com.cn/s/blog_7120cef801017mk3.html
最近公司要把SQL2000升級到SQL2008,在升級之后經常出現“該語句沒有返回結果集”的報錯提示,幾經查找處理無果,后來因為一個小堅持,最后發現了問題所在。我相信我們的代碼,相信我們的系統,哈哈。
<wbr>這期間我曾經懷疑過數據庫的選項設置有問題,也懷疑過數據庫驅動有問題,但是最初沒有找到線索。我把正式站點的數據庫設置與開發站點的一一對比,沒有相異的地方,也檢查過數據庫驅動,lib里面含有sqljdbc4.jar,似乎也沒問題,但是問題恰恰就出現在驅動這里。</wbr>
<wbr> 如果你來不及看博文,可以直接跳到最后,其中第2點解決方法也許會沒留意到。 <div><br></div> <div><wbr> 1.網上查找到的解決方法:set nocount on</wbr></div> <div><wbr> 網上基本上給出的解決方法就是使用set nocounton,說是SQL2005后對SQL語法較為嚴謹,原本能在2000上跑的語句到了2005或者2008就不行了。一般出現這種情況是因為寫的腳本中先進行增刪改,最后又通過select想把結果查出來,此時使用executeQuery()就會報錯。</wbr></div> <div><br></div> <div><wbr> 這種處理方法是在你寫的SQL中或是存儲過程中寫上set nocount on 與set nocount off即可,示例如下:</wbr></div> <div><wbr> set nocount on<wbr></wbr></wbr></div> <div><wbr><wbr> your sql</wbr></wbr></div> <div><wbr> set nocount off</wbr></div> <div><br></div> <div><wbr>這種方法基本上可以解決“沒有返回結果集”的問題,如果你嘗試之后仍然報錯,別泄氣,接下來看第2中處理方法,或許對你有幫助。</wbr></div> <div><br></div> <div><wbr> 2.數據庫驅動的解決方法:</wbr></div> <div><wbr>如果1中的方法無效,那么很大程度你忽略了一個問題,那就是數據庫驅動。請檢查你是否在用sqljdbc.jar,或是帶1的版本,類似sqljdbc1xxx.jar。馬上把它刪掉,確保你在用sqljdbc4.jar這個版本的驅動,而且sqljdbc1xxx.jar不能與sqljdbc4.jar同存,同存會導致系統優先使用sqljdbc1xxx.jar,從而引發在執行SQL出現不兼容問題。最好把WEBSERVICE與項目下的lib文件夾都檢查一遍。</wbr></div> <div><br></div> <div><wbr>我就是通過刪除舊版本的sqljdbc.jar,改用sqljdbc4.jar來解決這個問題的。<img title="關于SQL2008【沒有返回結果集】的解決方法" alt="關于SQL2008【沒有返回結果集】的解決方法" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif" type="face"></wbr></div> </wbr>
關于SQL2008【沒有返回結果集】的解決方法 .
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元