捕獲數據庫錯誤消息<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想知道是否有一種方法可以捕獲數據庫錯誤消息並將其放入一個 jmp 變量中。
以 Oracle DB 為例,如果我嘗試插入 ID 主鍵上已存在的一個值:
/* JSL */
sql = "INSERT INTO MY.TABLE (ID, DATA) VALUES ('A',150)";
打開數據庫(dsnDB,sql);
/* 日誌顯示 */
[Oracle][ODBC][Ora]ORA-00001: 違反了唯一約束 (MY.TABLE)
ORA-06512: 在第 1 行
我想在 jsl 變量中添加以下內容:“[Oracle][ODBC][Ora]ORA-00001:違反了唯一約束(MY.TABLE)”。
我暫時沒有找到任何解決方案。
謝謝。
回复:捕獲數據庫錯誤消息你好,
感謝您提供這麼好的建議。 日誌捕獲功能正是我一直在尋找的功能。
回复:捕獲數據庫錯誤消息你好,
一種方法是使用日誌捕獲功能。 為了測試 JSL 代碼,我模擬了兩種不同類型的錯誤:
- 在從指定表中選擇列之前未建立與 Access 數據庫的連接而導致失敗錯誤
- 由於未安裝適當的 ODBC 驅動程序而導致的失敗錯誤
我在以下 JSL 代碼中提供了一個示例,說明如何完成您想要做的事情以及生成的錯誤消息:
名稱默認為此處
( 1 ) ;訪問錯誤01 = “訪問錯誤:” ||日誌捕獲(開放數據庫(
“DSN=MS Access 數據庫;DBQ=C:UsersstkoprDocumentsMovinOn.accdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;” ,
“從tblVehicle中選擇*” ,
“tbl車輛”
)) ;
以下內容將寫入日誌,並將錯誤字符串存儲在場景測試 1 的變量 AccessError01 中。
“訪問錯誤:[Microsoft][ODBC Microsoft Access 驅動程序] 找不到文件“(未知)”。
”
以下內容將寫入日誌,並將字符串存儲在場景測試 2 的變量 AccessError01 中。
“訪問錯誤:[iODBC][驅動程序管理器]未找到數據源名稱且未指定默認驅動程序。 驅動程序無法加載
”
是的,您可以...連接到 ODBC 數據庫