DB2 9 应用开辟(733 测验)认证指南,第 6 局部: .NET 编程(5)
2011-03-06 23:47
525 查看
完成 DB2 与 .NET 框架的无缝接口
毛病检讨
在本节中,您将学习若何应用 ADO.NET 应用顺序的毛病检讨器材。 您将窥察应用
错误处理惩罚
如果在 ADO.NET 中实行准确的错误处理惩罚要领,在 ADO.NET 应用顺序中,应该将逻辑包括在
在清单 10 中的示例中,一个
清单 10. try catch 块
当
回页首
DB2 ADO.NET 跟踪
为了调试 DB2 ADO.NET 应用顺序,可以应用 DB2 ADO.NET 跟踪实用顺序。 要激活 ADO.NET 跟踪实用顺序,可以设置以下环境变量:
激活 ADO.NET 跟踪实用顺序之后,每当运转一个 DB2 ADO.NET 应用顺序,就会生成对 ADO.NET 挪用的一个具体的跟踪。清单 11 展示了后面开辟的 AccessSamplDb 应用顺序生成的跟踪数据:
清单 11. .NET 跟踪示例
当具有含不兼容操作数的
清单 12. .NET 跟踪实用顺序捕获到的错误
DB2 .NET Provider 应用 DB2 CLI 的一些组件。这对付 DB2 ADO.NET 应用顺序确定成就无意会很有效,可以获得 CLI 和 DB2 跟踪信息。
版权声明:
原创作品,许愿转载,转载时请务必以超链接情势标明文章 原始因由 、作者信息和本声明。不然将清查司法责任。
毛病检讨
在本节中,您将学习若何应用 ADO.NET 应用顺序的毛病检讨器材。 您将窥察应用
Exception器材和 DB2 .NET 跟踪及 DB2 跟踪实用顺序举行底子的错误处理惩罚和呈文。
错误处理惩罚
如果在 ADO.NET 中实行准确的错误处理惩罚要领,在 ADO.NET 应用顺序中,应该将逻辑包括在
try/
catch块中。当 ADO.NET 要领中泛起错误时,将抛出
Exception器材。因而, 对付包括数据库操作的每个
try块,响应的
catch块应该包括处理惩罚一个
Exception器材的逻辑。
在清单 10 中的示例中,一个
SELECT语句中的
WHERE子句含有标准不兼容的操作数:STAFF 表的 JOB 列的数据标准是
VARCHAR,而不是
INTEGER。
清单 10. try catch 块
try { ... cmd.Transaction = trans; cmd.CommandText = "SELECT ID, NAME FROM STAFF WHERE JOB = 99"; reader = cmd.ExecuteReader(); ... } catch (Exception ex) { Console.WriteLine(ex.Message); }
当
try块中泛起一个非常时,
catch块将捕获该非常。
ex.Message包括非常的内容。含不兼容操作数的
SELECT语句会生成以下非常:
ERROR [42818] [IBM][DB2/NT] SQL0401N The data types of the operands for the operation "=" are not compatible. SQLSTATE=42818
回页首
DB2 ADO.NET 跟踪
为了调试 DB2 ADO.NET 应用顺序,可以应用 DB2 ADO.NET 跟踪实用顺序。 要激活 ADO.NET 跟踪实用顺序,可以设置以下环境变量:
SET DB2NMPTRACE=1
激活 ADO.NET 跟踪实用顺序之后,每当运转一个 DB2 ADO.NET 应用顺序,就会生成对 ADO.NET 挪用的一个具体的跟踪。清单 11 展示了后面开辟的 AccessSamplDb 应用顺序生成的跟踪数据:
清单 11. .NET 跟踪示例
| DB2Trace.TraceVersion fnc data 10: Version: 9.0.0.1 | DB2Trace.TraceVersion fnc data 11: Framework: 1.1.4322.2300 | DB2Interop.Init fnc entry | | DB2Interop.Init fnc data 10: file:///c:/windows/assembly/gac/ibm.data.db2/9.0.0.1 __7c307b91aa13d208/ibm.data.db2.dll | | DB2Interop.Init fnc data 19: 9.1.0.DEF.1 | | DB2Interop.Init fnc data 20: DB2COPY1 | | DB2Interop.Init fnc data 30: D:\IBM\SQLLIB\ | | DB2Interop.Init fnc data 50: D:\IBM\SQLLIB\\bin\db2app.dll | | DB2Interop.Init fnc data 55: a | | DB2Interop.Init fnc data 60: 15 | | DB2Interop.Init fnc data 97: SOFTWARE\IBM\DB2\InstalledCopies | | DB2Interop.Init fnc data 98: DB2COPY1 | | DB2Interop.Init fnc data 99: 0 | DB2Interop.Init fnc exit2, rc = 0 - False, 15 db2trace False | DB2ConnPool.GetDB2ConnPool fnc data 5: 0 | DB2ConnPool.GetDB2ConnPool fnc data 10: 1 | DB2ConnPool.GetDB2ConnPool fnc data 11: 55706604 | DB2ConnPool.GetDB2ConnPool fnc data 254: 1 1 DB2ConnPool.GetDB2ConnPool fnc exit, rc = 0 DB2ConnPool.DB2ConnPool fnc exit, rc = 0 DB2Connection.DB2Connection1 fnc entry | DBCWrapper.DBCWrapper fnc entry | DBCWrapper.DBCWrapper fnc exit, rc = 0 | DB2Connection.ConnectionString.set fnc entry1 - Database=SAMPLE | | DB2Connection.State.get fnc entry | | | DB2Connection.State.get api data 10: Closed | | DB2Connection.State.get fnc exit, rc = 0 | | DB2ConnPool.ReplaceConnectionStringParms fnc entry | | | DB2ConnPool.ReplaceConnectionStringParms fnc data 10: Database=SAMPLE | | | DB2ConnPool.ReplaceConnectionStringParms fnc data 15: database, SAMPLE | | | DB2ConnPool.ReplaceConnectionStringParms fnc data 20: dsn=SAMPLE; | | DB2ConnPool.ReplaceConnectionStringParms fnc exit, rc = 0 | DB2Connection.ConnectionString.set fnc exit, rc = 0 DB2Connection.DB2Connection1 fnc exit, rc = 0 DB2Connection.Open fnc entry | DB2Connection.State.get fnc entry | | DB2Connection.State.get api data 10: Closed | DB2Connection.State.get fnc exit, rc = 0 | DB2ConnPool.GetDB2ConnPool fnc entry | | DB2ConnPool.GetDB2ConnPool fnc data 254: 1 2 | DB2ConnPool.GetDB2ConnPool fnc exit, rc = 0
当具有含不兼容操作数的
SELECT语句的顺序运转时, .NET 跟踪实用顺序捕获到错误:
清单 12. .NET 跟踪实用顺序捕获到的错误
DB2Command.ExecuteReader2 fnc exit, rc = 0 DB2ConnPool.CheckClose fnc entry DB2Exception.Message.get fnc entry | DB2ConnPool.CheckClose fnc data 10: 2/8/2007 4:14:39 PM | | DB2Resource.DB2Resource fnc entry2 - db2nmp.xml, null | | DB2ConnPoolWrapper.LockPool fnc entry | | | DB2Resource.GetMsgPath fnc entry | | | | DB2ConnPoolWrapper.LockPool fnc data 10: dsn=SAMPLE; | | | | | DB2Resource.GetMsgPath fnc data 10: D:\IBM\SQLLIB\ | | | | DB2ConnPoolWrapper.LockPool fnc exit, rc = 0 | | | DB2Resource.GetMsgPath fnc exit1, rc = 0 - D:\IBM\SQLLIB\msg\en_US | | | DB2ConnPool.CheckClose fnc data 20: dsn=SAMPLE;, xa: False, conns: 1, free: 0 | | DB2Resource.DB2Resource fnc exit, rc = 0 | | DB2ConnPool.CheckClose fnc data 25: POOL [dsn=SAMPLE;] 1->NULL pPool.pLastConn = 1 | | DB2Exception.Message.get fnc data 20: ERROR [42818] [IBM][DB2/NT] SQL0401N The d ata types of the operands for the operation "=" are not compatible. SQLSTATE=42818 | | DB2ConnPool.CheckClose fnc data 30: dbc: 1, xa: False, inuse: True, free on close: False, lifetime: -1, 0 | DB2Exception.Message.get fnc exit, rc = 0 | DB2ConnPoolWrapper.UnlockPool fnc entry ERROR [42818] [IBM][DB2/NT] SQL0401N The data types of the operands for the operatio n "=" are not compatible. SQLSTATE=42818
DB2 .NET Provider 应用 DB2 CLI 的一些组件。这对付 DB2 ADO.NET 应用顺序确定成就无意会很有效,可以获得 CLI 和 DB2 跟踪信息。
版权声明:
原创作品,许愿转载,转载时请务必以超链接情势标明文章 原始因由 、作者信息和本声明。不然将清查司法责任。
相关文章推荐
- DB2 9 操纵开辟(733 测验)认证指南,第 4 局部: 嵌入式 SQL 编程(5)
- DB2 9 利用拓荒(733 查验)认证指南,第 6 局部: .NET 编程(4)
- DB2 9 利用开辟(733 测验)认证指南,第 1 部分: 数据库工具与编程步调(6)
- DB2 9 哄骗开辟(733 测验)认证指南,第 5 部门: CLI/ODBC 编程(4)
- DB2 9 使用开辟(733 测验)认证指南,第 1 部分: 数据库对象与编程方法(4)
- DB2 9 应用开辟(733 检验)认证指南,第 9 局部: 用户界说的例程(7)
- DB2 9 使用斥地(733 测验)认证指南,第 1 局部: 数据库对象与编程措施(2)
- DB2 9 运用开辟(733 检验)认证指南,第 5 局部: CLI/ODBC 编程(1)
- DB2 9 使用开辟(733 测验)认证指南,第 3 局部: XML 数据独霸(2)
- DB2 9 使用拓荒(733 考试)认证指南,第 6 部分: .NET 编程(7)
- DB2 9 利用斥地(733 考试)认证指南,第 6 部门: .NET 编程(6)
- DB2 9 运用开拓(733 检修)认证指南,第 6 部分: .NET 编程(3)
- DB2 9 使用拓荒(733 检修)认证指南,第 6 部分: .NET 编程(2)
- DB2 9 利用开辟(733 测验)认证指南,第 3 局部: XML 数据操纵(10)
- DB2 9 把持启示(733 查验)认证指南,第 6 部分: .NET 编程(1)
- DB2 9 使用开发(733 测验)认证指南,第 8 局部: 初级编程(3)
- DB2 9 哄骗开发(733 考试)认证指南,第 5 局部: CLI/ODBC 编程(6)
- DB2 9 使用开拓(733 检验)认证指南,第 8 局部: 初级编程(1)
- DB2 9 运用斥地(733 测验)认证指南,第 1 部分: 数据库对象与编程方式(5)
- DB2 9 使用开发(733 考试)认证指南,第 7 局部: Java 编程(7)