大家好,小弟這邊有個問題想向大家請教一下,盼望各位高手指點指點!
我在SQL建立一個Store procedure名為sp_check,在sp_check內開了四個cursor去執行許多SQLcommand,但不是巢狀,
是一個Cursor執行完再開一個,
sp_check在SQLAnalyzer下執行都沒問題,
而我在VB內,利用ADO建立connection 名為 cnSQL,
當我執行 cnSQL.execute "EXEC sp_check" 時,卻會出現問題,
根據Profiler Trace的結果,是sp_check執行到一半時就結束,而每次結束的地方也不是在同一個Cursor內,
更令人困惑的是我在VB內有宣告ADO.Error
做ErrorHandle,可是VB這邊並沒有收到任何Error,
程式繼續執行
請問諸位高手這有可能是什麼原因,該如何解決?感激不盡!
我在SQL建立一個Store procedure名為sp_check,在sp_check內開了四個cursor去執行許多SQLcommand,但不是巢狀,
是一個Cursor執行完再開一個,
sp_check在SQLAnalyzer下執行都沒問題,
而我在VB內,利用ADO建立connection 名為 cnSQL,
當我執行 cnSQL.execute "EXEC sp_check" 時,卻會出現問題,
根據Profiler Trace的結果,是sp_check執行到一半時就結束,而每次結束的地方也不是在同一個Cursor內,
更令人困惑的是我在VB內有宣告ADO.Error
做ErrorHandle,可是VB這邊並沒有收到任何Error,
程式繼續執行
請問諸位高手這有可能是什麼原因,該如何解決?感激不盡!
文章標籤
全站熱搜

基本上我認為這是不太可能的事情喔! 不過我建議你可以使用下列兩個方法來 trace. 1. 使用 T-SQL debugger 2. 在你的 stored procedure 中定下一些 check point,然後使用 PRINT 指令輸出一些字串,由於這些字串可以被 ADO 的 Errors 物件所接收,所以你可以知道在那裏出了問題。 在 stored procedure 中使用 cursor 的難度相當高,因為除錯很不容易,我之前也曾經在 trigger 中使用 cursor (那時是 SQL 6.0),於是 SQL Server 不明原因平均每兩週當機一次,把公司的 SQL admin 氣得半死。所以別忘了先把你的 SQL server 版本安裝最新的 service park 喔! (SQL 6.5 是 SP5a, SQL 7 是 SP1)
謝謝小吳,感激不盡,你提供一個很好的方法,我會去試試看 基本上這問題不是一開始就發生,是系統在上線三個月後才發生的 在許多的測試後,覺得應該不是SQLServer(7.0)的問題 而我在想這有沒有可能是User Client端的ADO有問題,因為我前後換了 五台電腦去執行,而有兩台竟可正常執行,可是這也很令人納悶,如果是client的ADO有問題,一台就算,五台中有三台???? 不知小吳及諸位高手是否有其他意見可提供,小弟不勝感激!