捕获数据库错误消息<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 数据库