科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道解析:怎样处理应用程序中的错误和消息

解析:怎样处理应用程序中的错误和消息

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由 Microsoft SQL Server 2000 或 RAISERROR 语句产生的错误不是结果集的一部分。错误通过独立于结果集处理的错误处理机制返回给应用程序。

作者:赛迪网 limeinan 来源:天新网 2008年3月27日

关键字: Mssql SQL SQL Server 数据库

  • 评论
  • 分享微博
  • 分享邮件

由 Microsoft® SQL Server™ 2000 或 RAISERROR 语句产生的错误不是结果集的一部分。错误通过独立于结果集处理的错误处理机制返回给应用程序。

每个数据库 API 都包括一些函数、接口、方法、对象或结构的集合,通过这些集合返回错误和消息。每个 API 函数或方法通常返回表示操作成功的状态代码。如果此状态不是成功状态,则应用程序可以调用错误函数、方法或对象来检索错误信息。

实际上 SQL Server 有两种返回错误信息的机制:

错误

◆严重度为 11 或高于 11 的 sysmessages 中的错误。
◆严重度为 11 或高于 11 的任意 RAISERROR 语句。

邮件

◆PRINT 语句的输出。
◆几个 DBCC 语句的输出。
◆严重度为 10 或低于 10 的 sysmessages 中的错误。
◆严重度为 10 或低于 10 的任意 RAISERROR 语句。

ODBC 的错误处理

ODBC 规范引入的错误模型一直是一般数据库 API 的错误模型的基础,如 ADO、OLE DB 和通过 ODBC 建立的 API (RDO、DAO 和 MFC 数据库类)。在 ODBC 模型中,错误具有以下属性:

◆SQLSTATE

SQLSTATE 是一个 5 个字符的错误代码,它最初是在 ODBC 规范中定义的。SQLSTATE 对所有 ODBC 驱动程序是通用的,并为应用程序提供了对不同数据库返回的所有不同的错误代码进行无需测试的基本错误处理编码的方法。ODBC SQLSTATE 与 SQL Server 错误信息的状态属性无关。

ODBC 2.x 返回一个 SQLSTATE 代码的集合,ODBC 3.x 返回与 X/Open 数据管理并列的一组 SQLSTATE 代码:结构化查询语言 (SQL),标准版本 2。因为所有 ODBC 驱动程序都返回相同的 SQLSTATE 代码集合,所以将错误处理基于 SQLSTATE 代码的应用程序更易于移植。

◆本机错误号

本机错误号是来自基础数据库的错误号。ODBC 应用程序将收到的 SQL Server 错误号作为本机错误号。

◆错误信息字符串

错误信息通过错误信息字符串参数返回。

当 ODBC 函数返回的状态不是 SQL_SUCCESS 时,应用程序可以调用 SQLGetDiagRec 以获得错误信息。例如,如果 ODBC 应用程序收到一个语法错误(SQL Server 错误 170),则 SQLGetDiagRec 返回:

szSqlState = 42000, pfNative = 170
szErrorMsg =
'[Microsoft][ODBC SQL Server Driver][SQL Server]
Line 1: Incorrect syntax near *

ODBC SQLGetDiagField 函数允许 ODBC 驱动程序在此驱动程序返回的诊断记录中指定驱动程序特定的诊断字段。SQL Server ODBC 驱动程序指定驱动程序特定的字段以放置 SQL Server 错误信息,如 SQL Server 严重度和状态代码。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章