编写 ODBC 3.x 驱动程序

下表显示了 ODBC 3.x 驱动程序和 ODBC 应用程序中的函数支持情况,以及针对 ODBC 3.x 驱动程序调用函数时驱动程序管理器执行映射的情况。

函数

一个

ODBC 3.x

驱动程序支持?
支持

一个

ODBC 3.x

应用程序支持?


ODBC 3.x

驱动程序管理器支持或映射到

ODBC 3.x 驱动程序?
SQLAllocConnect 否[1]
SQLAllocEnv 否[1]
SQLAllocHandle
SQLAllocStmt 否[1]
SQLBindCol
SQLBindParam 是[2]
SQLBindParameter
SQLBrowseConnect
SQLBulkOperations
SQLCancel
SQLCloseCursor
SQLColAttribute
SQLColAttributes 否[3]
SQLColumnPrivileges
SQLColumns
SQLConnect
SQLCopyDesc 是[4]
SQLDataSources
SQLDescribeCol
SQLDescribeParam
SQLDisconnect
SQLDriverConnect
SQLDrivers
SQLEndTran
SQLError 否[1]
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLForeignKeys
SQLFreeConnect 是[1]
SQLFreeEnv 是[1]
SQLFreeHandle
SQLFreeStmt
SQLGetConnectAttr
SQLGetConnectOption 否[5] 否[1]
SQLGetCursorName
SQLGetData
SQLGetDescField
SQLGetDescRec
SQLGetDiagField
SQLGetDiagRec
SQLGetEnvAttr
SQLGetFunctions 否[6]
SQLGetInfo
SQLGetStmtAttr
SQLGetStmtOption 否[5] 否[1]
SQLGetTypeInfo
SQLMoreResults
SQLNativeSql
SQLNumParams
SQLNumResultCols
SQLParamData
SQLParamOptions No
SQLPrepare
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLPutData
SQLRowCount
SQLSetConnectAttr
SQLSetConnectOption 否[5] 否[1]
SQLSetCursorName
SQLSetDescField
SQLSetDescRec
SQLSetEnvAttr
SQLSetPos
SQLSetParam No
SQLSetScrollOption
SQLSetStmtAttr
SQLSetStmtOption 否[5] 否[1]
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables
SQLTransact 否[1]

[1] ODBC 3.x 中已弃用此函数。 ODBC 3.x 应用程序不应使用此函数。 但是,Open Group 或符合 ISO CLI 的应用程序可以调用此函数。

[2] ODBC 3.x 应用程序应使用 SQLBindParameter 而不是 SQLBindParam。 但是,Open Group 或符合 ISO CLI 的应用程序可以调用此函数。

[3] 驱动程序编写器应注意 ODBC 2.x 的列属性 SQL_COLUMN_PRECISION、SQL_COLUMN_SCALE 和 SQL_COLUMN_LENGTH 必须支持 SQLColAttribute

[4] 当在属于不同驱动程序的连接之间复制描述符时,SQLCopyDesc 由驱动程序管理器部分实现。 驱动程序需要在它们自己的两个连接上支持 SQLCopyDesc。 仅由驱动程序管理器实现的 SQLDrivers 等函数不会出现在此列表中。

[5] 在某些情况下,驱动程序可能需要支持此函数。 有关详细信息,请参阅此函数的参考页面。

[6] 如果驱动程序支持的函数集因连接而异,则驱动程序可以选择支持 SQLGetFunctions