zoukankan      html  css  js  c++  java
  • OTL翻译(7) -- otl_exception类

    otl_exception

    这个类是OTL用来抛出异常的类。如果数据库API返回一个非0的错误值,则OTL会将会抛出一个otl_exception的异常。一个otl_exception异常有可能是一个数据库错误或是一个OTL定义的错误。

    序号

    函数、成员变量

    说明

    1

    char stm_text[2048 or OTL_EXCEPTION_STM_TEXT_SIZE]

    OTL异常里面SQL语句的前2047个字符。当设置了stream label(在otl_stream或open()函数里面的sqlstm_label设置)后,它就被SQL的数据成员替代了SQL语句。

    2

    char var_info[256]

    如果抛出了“Incompatible data types in stream operation”异常,则该变量被用来填充绑定变量和字段信息。如:bind variable name/select output column number <datatype>

    3

    #if defined(OTL_UNICODE_EXCEPTION_AND_RLOGON)

    SQLWCHAR msg[1000];

    #else

    unsigned char msg[1000];

    #endif

    数据库错误信息或是OTL错误信息。

    4

    int code

    数据库错误的编码或是OTL错误编码

    5

    #if defined(OTL_UNICODE_EXCEPTION_AND_RLOGON)

    SQLWCHAR sqlstate[1000];

    #else

    unsigned char sqlstate[1000];

    #endif

    仅适用于ODBC或DB2 CLI。对于OCI它始终为空。

    用来存放SQL的状态信息,详细请见ODBC或DB2 CLI手册。

    6

    #if defined(OTL_EXTENED_EXCEPTION)

    #if defined(OTL_UNICODE_EXCEPTION_AND_RLOGON)

    int arr_len;

    SQLWCHAR *msg_arr[];

    SQLWCHAR *sqlstate_arr[];

    int code_arr[]

    #else

    int arr_len;

    char * msg_arr[];

    char * sqlstate_arr[];

    int code_arr[];

    #endif

    #endif

    扩展字段信息。通过SQLGetDiagRec()函数,获取所有的ODBC/DB2 CLI动态记录信息。

    OTL的异常往往只取第一条信息,但对于ODBC、DB2 CLI在某些情况下,它会带有多条动态的信息,此时该变量里面包含有所有的信息。arr_len是信息数量。

    msg_arr里面是消息;sqlstate_arr里面是sqlstate;code_arr里面是错误码。

    7

    #if defined(OTL_EXCEPTION_ENABLE_ERROR_OFFSET)

    int error_offset

    #endif

    仅适用于OCI。

    SQL语句解析错误码。

    8

    enum{disabled = 0,enabled = 1};

    定义两个常量用于静态的SQL语句。

  • 相关阅读:
    微服务实战SpringCloud之Spring Cloud Feign替代HTTP Client
    JS如何去掉一个数组的重复元素 (数组去重)
    原生JS写了一个小demo,根据输入的数字生成不同背景颜色的小方块儿~
    请教前辈:关于JS的一个奇怪的错误,不知是解析顺序造成的,还是什么原因。。
    JS中的offsetWidth、offsetHeight、clientWidth、clientHeight等等的详细介绍
    记录来到博客园的第一天~
    凡事预则立
    软件产品案例分析(福大公众号)
    组员交换
    事后诸葛亮
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/5903308.html
Copyright © 2011-2022 走看看