2013-10-10 59 views
0

我有一個關於在Windows sql server 2005上創建的存儲過程的問題。我有ColdFusion代碼來調用過程。我第一次嘗試時失敗了,因爲程序沒有正確的權限,所以我添加了一個新用戶db_owner並添加到該程序中,然後它正常運行。問題調用存儲過程

但後來我發現DB中出現了錯誤。我的問題是,即使我看到錯誤,你認爲該過程已經開始運行? 由於權限問題,它的停止不正確(可能沒有必要的參數,未能聯繫到每個表?)?你是否也認爲它可能導致數據庫崩潰?


<cftry> 
    <cfstoredproc procedure="test" datasource="test" result="proc_results"> 
     <cfprocparam cfsqltype="cf_sql_varchar" variable ="A" value="#GetToken(form.test_A)#"> 
     <cfprocparam cfsqltype="cf_sql_varchar" variable ="B" value="#GetToken(form.test_B)#"> 
    </cfstoredproc> 
    <cfcatch type="any"> 
     Error! 
    </cfcatch> 
</cftry> 

+1

底線是,你需要提供之前,任何人都可以回答你的問題的更多信息。 * DB中出現錯誤*特別是哪裏出了問題?如下所述,您需要轉儲實際的錯誤 - 不只是打印「錯誤!」 * RE:你認爲程序已經開始運行了*這取決於發生的錯誤類型。轉儲錯誤並[編輯您的問題](http://stackoverflow.com/posts/19306881/edit)包含完整的錯誤消息。 – Leigh

回答

0

存儲過程的錯誤,除非是做一些很正統的東西一般不會崩潰,整個數據庫。數據庫(如SQL Server)旨在防止出現這種情況。

至於存儲過程是否開始運行:當您嘗試在沒有正確權限的情況下啓動它時,它不會啓動。如果您在添加正確權限時說「它正常運行」,那麼它就開始了。它將取決於存儲過程的細節,以確定它是否真的做了什麼或者改變了什麼,或者沒有錯誤地退出而沒有做任何事情。

在任何人可以肯定地說出之前,您需要提供存儲過程的代碼和數據庫結構的相關部分。

1

試圖傾出一些錯誤的詳細信息:

<cfcatch> 
<cfoutput> 
    #cfcatch.message# 
    #cfcatch.detail# 
</cfoutput> 
</cfcatch> 

甚至

<cfcatch> 
    <cfdump var="#cfcatch#"> 
<cfcatch>