编写 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。