特定于驱动程序的数据类型、描述符类型、信息类型、诊断类型和属性
驱动程序可以为以下内容分配特定于驱动程序的值:
SQL 数据类型指示器它们用于 SQLBindParameter 中的 ParameterType 以及 SQLGetTypeInfo 中的 DataType,并由 SQLColAttribute、SQLColumns、SQLDescribeCol、SQLGetTypeInfo、SQLDescribeParam、SQLProcedureColumns 和 SQLSpecialColumns 返回。
描述符字段它们用于 SQLColAttribute、SQLGetDescField 和 SQLSetDescField 中的 FieldIdentifier。
诊断字段它们用于 SQLGetDiagField 和 SQLGetDiagRec 中的 DiagIdentifier。
信息类型它们用于 SQLGetInfo 中的 InfoType。
连接和语句属性这些属性用于 SQLGetConnectAttr、SQLGetStmtAttr、SQLSetConnectAttr 和 SQLSetStmtAttr 中的 Attribute。
对于每个项目,都有两组值:保留供 ODBC 使用的值,以及保留供驱动程序使用的值。 在执行特定于驱动程序的值之前,驱动程序编写器必须从 Open Group 请求每个特定于驱动程序的类型、字段或属性的值。 对于新驱动程序开发,请使用下表中所述的范围。 如果使用的未知值不在下述范围内,ODBC 3.8 驱动程序管理器将不会生成错误。 但是,如果接收到不在范围内的未知值,则更高版本的驱动程序管理器可能会生成错误。
将这些值中的任何一个值传递给 ODBC 函数时,驱动程序必须检查该值是否有效。 驱动程序返回特定于驱动程序的值(适用于其他驱动程序)的 SQLSTATE HYC00(可选功能未执行)。
从 ODBC 3.8 开始,驱动程序编写器便可在保留范围内分配特定于驱动程序的属性。
注意
ODBC 3.8 驱动程序管理器既不验证也不强制实施这些范围以实现后向兼容性。 但是,驱动程序管理器的未来版本可能会强制执行这些范围。
属性类型 | ODBC 数据类型 | 特定于驱动程序的范围基准 | 特定于驱动程序的范围限制 | 特定于驱动程序的值范围基准的 ODBC 常量 |
---|---|---|---|---|
SQL 数据类型指示器 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_SQL_TYPE_BASE |
描述符字段 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_DESCRIPTOR_BASE |
诊断字段 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_DIAGNOSTIC_BASE |
信息类型 | SQLUSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_INFO_TYPE_BASE |
连接属性 | SQLINTEGER | 0x00004000 | 0x00007FFF | SQL_DRIVER_CONNECT_ATTR_BASE |
语句属性 | SQLINTEGER | 0x00004000 | 0x00007FFF | SQL_DRIVER_STATEMENT_ATTR_BASE |
注意
驱动程序文档中必须描述特定于驱动程序的数据类型、描述符字段、诊断字段、信息类型、语句属性和连接属性。 将这些值中的任何一个值传递给 ODBC 函数时,驱动程序必须检查该值是否有效。 驱动程序返回特定于驱动程序的值(适用于其他驱动程序)的 SQLSTATE HYC00(可选功能未执行)。
定义基准值以促进驱动程序开发。 例如,可以通过采用以下格式来定义特定于驱动程序的诊断属性:
SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈