關於SQL2008【沒有返回結果集】的解決方法 .

源地址:http://blog.sina.com.cn/s/blog_7120cef801017mk3.htmlhtml

 


最近公司要把SQL2000升級到SQL2008,在升級以後常常出現「該語句沒有返回結果集」的報錯提示,幾經查找處理無果,後來由於一個小堅持,最後發現了問題所在。我相信咱們的代碼,相信咱們的系統,哈哈。關於SQL2008【沒有返回結果集】的解決方法 sql


  這期間我曾經懷疑過數據庫的選項設置有問題,也懷疑過數據庫驅動有問題,可是最初沒有找到線索。我把正式站點的數據庫設置與開發站點的一一對比,沒有相異的地方,也檢查過數據庫驅動,lib裏面含有sqljdbc4.jar,彷佛也沒問題,可是問題偏偏就出如今驅動這裏。

  若是你來不及看博文,能夠直接跳到最後,其中第2點解決方法也許會沒留意到。

  1.網上查找到的解決方法:set nocount on
  網上基本上給出的解決方法就是使用set nocounton,說是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出現不兼容問題。最好把WEBSERVICE與項目下的lib文件夾都檢查一遍。

  我就是經過刪除舊版本的sqljdbc.jar,改用sqljdbc4.jar來解決這個問題的。 關於SQL2008【沒有返回結果集】的解決方法
相關文章
相關標籤/搜索