【dbForge Studio for MySQL入門教程】如何調(diào)試存儲過程
此示例演示如何在dbForge Studio for MySQL中通過步入存儲過程來調(diào)試MySQL存儲過程。它還說明了不同的調(diào)試技術(shù),例如設(shè)置斷點,查看數(shù)據(jù)項等。
創(chuàng)建示例過程
在本主題中,一些示例數(shù)據(jù)庫對象用于演示如何使用dbForge Studio Debugger。使用本主題中指定的腳本在測試數(shù)據(jù)庫中創(chuàng)建必要的對象。
使用下面的腳本創(chuàng)建帶有兩個輸入?yún)?shù)的過程:DateFrom和DateTo。根據(jù)這些輸入?yún)?shù),schedule_list表填滿了數(shù)據(jù)。
調(diào)試存儲過程
假設(shè)你需要得到時間表特定的時間段。為此,請執(zhí)行 FillSchedule 過程:
1. 在Database Explorer中,選擇您的測試數(shù)據(jù)庫。
2. 單擊“ Procedures ” ,然后右鍵單擊“ FillSchedule” 過程,并單擊快捷菜單中的“ Execute ” 。
3. 輸入輸入?yún)?shù)。
4. 單擊OK。
收到錯誤消息,告訴我們TimeSheetDate 列不能為空。
注意:實際文檔外觀可能與上圖略有不同,具體取決于您使用的產(chǎn)品。
調(diào)試程序
要開始調(diào)試存儲過程:
1. 要編譯存儲過程以進(jìn)行調(diào)試,請執(zhí)行數(shù)據(jù)庫資源管理器中的所需過程,選擇“ Compile ” ,然后單擊“ Compile Dependants for Debugging” 。
2. 單擊“ Debug ” 工具欄上的“ Start Debugging” 按鈕,或按CTRL + F5 。
3. 如果尚未編譯過程,dbForge Studio會提示您編譯它。單擊Yes。
4. 再次輸入存儲過程輸入?yún)?shù),然后單擊“ OK ” 。
您可以看到黃色箭頭標(biāo)識了執(zhí)行指針當(dāng)前所在的堆棧幀。
5. 將TimeSheetDate 變量添加到Watches 。右鍵單擊源代碼中的TimeSheetDate 變量,然后從快捷菜單中選擇“ Add Watch ” 選項。因此,您可以在調(diào)試時跟蹤TimeSheetDate 值?,F(xiàn)在您可以看到TimeSheetDate 變量出現(xiàn)在Watches 窗口中。
6. 在enumdays 臨時表中插入TimeSheetDate 變量的位置插入斷點。
7. 單擊“ Debug ”工具欄上的“單步執(zhí)行”按鈕,或按F11單步執(zhí)行代碼。
8. 幾次單擊后,您將遇到此斷點,這意味著不會忽略當(dāng)前代碼。
但是,正如您在Watches 窗口中看到的那樣,TimeSheetDate 變量的值為NULL 。我們知道TimeSheetDate 字段不能接受NULL值。因此可以得出結(jié)論,應(yīng)該初始化TimeSheetDate 變量。
9. 在將TimeSheetDate 變量插入表之前初始化它。
10. 現(xiàn)在重啟調(diào)試過程。為此,請單擊“ Debug ”工具欄上的“ Restart ”按鈕 。
11. 重復(fù)步驟2-8。
12. 現(xiàn)在,一旦你到達(dá)斷點,你可以看到TimeSheetDate變量的值是日期,這是絕對正確的。
13. 要停止調(diào)試過程,請單擊“ Stop ” 按鈕。
14. 單擊“ Execute ” 以運(yùn)行存儲過程。
15. 您可以看到消息告訴我們存儲過程已成功執(zhí)行。要驗證這一點,您可以從表中檢索數(shù)據(jù)。
16. 在Database Explorer中,選擇所需的數(shù)據(jù)庫。
17. 單擊Tables,然后用鼠標(biāo)右鍵單擊該所需的表。
18. 單擊快捷菜單中的“ Retrieve Data”。
19. dbForge Studio顯示結(jié)果表。
如您所見,Debugger for MySQL是一個非常簡單而強(qiáng)大的工具。您可以使用不同的調(diào)試技術(shù)來獲得正確的結(jié)果。