同一支 VB/ADO 程式連接同一台 SQL Server,在開發筆電與伺服器上測試正常,但在客戶端部分聯想桌機上執行存儲過程特定分支時,視窗會無訊息自動關閉,無任何例外拋出。
@CustType=0 改為 3)可避開問題,推測特定分支邏輯有問題。PRINT @SqlStr。PRINT 註解後,所有客戶端恢復正常。PRINT 訊息透過 TDS 封包以「資訊訊息」形式傳回用戶端。部分舊版 ODBC/OLE DB 驅動程式或特定硬體環境下,處理此類訊息時會觸發未處理的例外,導致宿主進程(如 VB 表單)意外終止,且不拋出可捕獲的錯誤。
sp_trace_generateevent 或自訂記錄表。一行看似無害的 PRINT 耗費近一天排查時間。上線前務必清理所有除錯代碼,並建立 Code Review 機制攔截此類問題。