SQL中Print語句的煩惱

來源:互聯網
上載者:User

前幾天寫一個程式時,無意中遇到一個怪問題.

癥狀描述如下:

一台聯想伺服器上安裝了SQLSERVER服務,在其一個資料庫裡寫了一個預存程序.此預存程序接受一個參數,裡面的語句對參數進行判斷然後執行分支.

if @CustType=0

       ..................

else if @CustType=1

.......................

else

...............

基本結構是這樣.

當我在開發的時候,用我的筆記本(康柏)上的程式連上伺服器,程式裡用的ADO中的Recordset來處理.當執行到rs.open時一點問題也沒有.在伺服器上也用此程式執行調用預存程序也沒有問題,一切正常.

但是當用該單位的其他電腦(都是聯想),用同樣的程式訪問時,當執行到預存程序中第一種情況時,所有的表單都自動關閉,也沒有任何的異常出現.

還有一種特別的情況存在,因為這個問題以前在其中一台聯想機上有過,後來我去查看這個問題,查不出原因.於是我在這台電腦上安裝了VS6,現場調試,可是我調試時一切正常,過了一個月後,又出現原來的問題(表單全關閉)

這下問題大了.同樣的程式在不同的電腦上執行時有時正常有時不正常,程式我相信絕對沒有錯.我想可能是電腦配置有問題.於是當一台電腦重做了,再試,還是不行.

想想會不會是SP沒打,又會了近二個小時把所有的SP安裝好.還是不正常. 再安裝VS6,也沒有用. 問題到底在哪裡呢.我仔細想想,我曾想到會不會是聯想的破機器有問題,會不會是他的CPU指令不對.(因為機器比較舊一點,再說在其他電腦上從來不出現這種問題).  我試著將程式中第一種情況的值改變一下,本來是0,改成3 這樣沒有問題.於是我將預存程序中的if @CustType=0 改成 if @CustType=3.問題又出現了. 會不會問題出現在這個分支,裡面的邏輯肯定都是對的.看到此分支最後有一行代碼,此代碼是調試時用的.用來查看預存程序執行時,扭虧為執行了什麼語句,也就是一句print (@SqlStr),會不會是這語句引起的.將其注釋了).開啟程式再試. 在刀有的電腦上通過.

原來這個問題是print語句引起的.怪就怪在有的用戶端執行時不會有問題.,而出現問題時又不報任何異常,只是將用戶端表單自動關閉.看來以後寫程式時一定要注意這個問題.要將調試代碼清理掉. 害得我白白花了近一天的時間.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.