属性一致性

下表显示了每个 ODBC 环境属性的一致性级别,这些级别有明确的定义。

功能 一致性级别
SQL_ATTR_CONNECTION_POOLING --[1]
SQL_ATTR_CP_MATCH --[1]
SQL_ATTR_ODBC_VER Core
SQL_ATTR_OUTPUT_NTS --[1]

[1] 这是一项可选功能,因此不属于一致性级别。

下表指示每个 ODBC 连接属性的一致性级别,其中定义得很好。

功能 一致性级别
SQL_ATTR_ACCESS_MODE (访问模式属性) Core
SQL_ATTR_ASYNC_ENABLE 级别 1/级别 2[1]
SQL_ATTR_AUTO_IPD 二级
SQL_ATTR_AUTOCOMMIT 级别 1
SQL_ATTR_CONNECTION_DEAD 级别 1
SQL_ATTR_CONNECTION_TIMEOUT 二级
SQL_ATTR_CURRENT_CATALOG 二级
SQL_ATTR_LOGIN_TIMEOUT 二级
SQL_ATTR_ODBC_CURSORS Core
SQL_ATTR_PACKET_SIZE 二级
SQL_ATTR_QUIET_MODE Core
SQL_ATTR_TRACE Core
SQL_ATTR_TRACEFILE Core
SQL_ATTR_TRANSLATE_LIB Core
SQL_ATTR_TRANSLATE_OPTION Core
SQL_ATTR_TXN_ISOLATION 级别 1/级别 2[2]

[1] 支持连接级异步(级别 1 所需的)的应用程序必须支持通过调用 SQLSetConnectAttr 将此属性设置为SQL_TRUE;属性不需要通过 SQLSetStmtAttr 将其默认值设置为非其默认值的值。 支持语句级异步(级别 2 所需的)的应用程序必须支持使用任一函数将此属性设置为 SQL_TRUE。

[2] 对于级别 1 接口一致性,驱动程序除了驱动程序定义的默认值外,还必须支持一个值(通过调用具有SQL_DEFAULT_TXN_ISOLATION选项的 SQLGetInfo 提供)。 对于级别 2 接口一致性,驱动程序还必须支持SQL_TXN_SERIALIZABLE。

下表显示每个 ODBC 语句属性在定义清楚的情况下的一致性级别。

功能 一致性级别
SQL_ATTR_APP_PARAM_DESC Core
SQL_ATTR_APP_ROW_DESC Core
SQL_ATTR_ASYNC_ENABLE 级别 1/级别 2[1]
SQL_ATTR_CONCURRENCY 级别 1/级别 2[2]
SQL_ATTR_CURSOR_SCROLLABLE 级别 1
SQL_ATTR_CURSOR_SENSITIVITY 二级
SQL_ATTR_CURSOR_TYPE 核心/级别 2[3]
SQL_ATTR_ENABLE_AUTO_IPD 二级
SQL_ATTR_FETCH_BOOKMARK_PTR 二级
SQL_ATTR_IMP_PARAM_DESC Core
SQL_ATTR_IMP_ROW_DESC Core
SQL_ATTR_KEYSET_SIZE 二级
SQL_ATTR_MAX_LENGTH 级别 1
SQL_ATTR_MAX_ROWS 级别 1
SQL_ATTR_METADATA_ID Core
SQL_ATTR_NOSCAN Core
SQL_ATTR_PARAM_BIND_OFFSET_PTR Core
SQL_ATTR_PARAM_BIND_TYPE Core
SQL_ATTR_PARAM_OPERATION_PTR Core
SQL_ATTR_PARAM_STATUS_PTR Core
SQL_ATTR_PARAMS_PROCESSED_PTR Core
SQL_ATTR_PARAMSET_SIZE Core
SQL_ATTR_QUERY_TIMEOUT 二级
SQL_ATTR_RETRIEVE_DATA 级别 1
SQL_ATTR_ROW_ARRAY_SIZE Core
SQL_ATTR_ROW_BIND_OFFSET_PTR (行绑定偏移指针属性) Core
SQL_ATTR_ROW_BIND_TYPE Core
SQL_ATTR_ROW_NUMBER 级别 1
SQL_ATTR_ROW_OPERATION_PTR 级别 1
SQL_ATTR_ROW_STATUS_PTR Core
SQL_ATTR_ROWS_FETCHED_PTR Core
SQL_ATTR_SIMULATE_CURSOR 二级
SQL_ATTR_USE_BOOKMARKS 二级

[1] 支持连接级异步(级别 1 所需的)的应用程序必须支持通过调用 SQLSetConnectAttr 将此属性设置为SQL_TRUE;属性不需要通过 SQLSetStmtAttr 将其默认值设置为非其默认值的值。 支持语句级异步(级别 2 所需的)的应用程序必须支持使用任一函数将此属性设置为 SQL_TRUE。

[2] 对于级别 2 接口一致性,驱动程序必须支持SQL_CONCUR_READ_ONLY和至少一个其他值。

[3] 对于级别 1 接口一致性,驱动程序必须支持SQL_CURSOR_FORWARD_ONLY和至少一个其他值。 对于级别 2 接口一致性,驱动程序必须支持本文档中定义的所有值。