7.1 连接器/ODBC API 参考

本节总结了按功能分类的 ODBC 例程。

有关完整的 ODBC API 参考,请参阅位于 http://msdn.microsoft.com/en-us/library/ms714177.aspx的 ODBC 程序员参考。

应用程序可以调用SQLGetInfo函数来获取有关连接器/ODBC 的一致性信息。要获取有关驱动程序中特定功能支持的信息,应用程序可以调用SQLGetFunctions

笔记

为了向后兼容,连接器/ODBC 驱动程序支持所有已弃用的功能。

下表列出了按任务分组的连接器/ODBC API 调用:

表 7.1 用于连接到数据源的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLAllocHandle 是的 ISO 92 获取环境、连接、语句或描述符句柄。
SQLConnect 是的 ISO 92 通过数据源名称、用户 ID 和密码连接到特定的驱动程序。
SQLDriverConnect 是的 ODBC 通过连接字符串连接到特定驱动程序或请求驱动程序管理器和驱动程序为用户显示连接对话框。
SQLAllocEnv 是的 弃用 获取从驱动程序分配的环境句柄。
SQLAllocConnect 是的 弃用 获取连接句柄

表 7.2 用于获取有关驱动程序和数据源的信息的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLDataSources ISO 92 返回可用数据源的列表,由驱动程序管理器处理
SQLDrivers ODBC 返回已安装的驱动程序及其属性的列表,由驱动程序管理器处理
SQLGetInfo 是的 ISO 92 返回有关特定驱动程序和数据源的信息。
SQLGetFunctions 是的 ISO 92 返回支持的驱动程序函数。
SQLGetTypeInfo 是的 ISO 92 返回有关支持的数据类型的信息。

表 7.3 用于设置和检索驱动程序属性的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLSetConnectAttr 是的 ISO 92 设置连接属性。
SQLGetConnectAttr 是的 ISO 92 返回连接属性的值。
SQLSetConnectOption 是的 弃用 设置连接选项
SQLGetConnectOption 是的 弃用 返回连接选项的值
SQLSetEnvAttr 是的 ISO 92 设置环境属性。
SQLGetEnvAttr 是的 ISO 92 返回环境属性的值。
SQLSetStmtAttr 是的 ISO 92 设置语句属性。
SQLGetStmtAttr 是的 ISO 92 返回语句属性的值。
SQLSetStmtOption 是的 弃用 设置语句选项
SQLGetStmtOption 是的 弃用 返回语句选项的值

表 7.4 用于准备 SQL 请求的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLAllocStmt 是的 弃用 分配语句句柄
SQLPrepare 是的 ISO 92 准备一个 SQL 语句供以后执行。
SQLBindParameter 是的 ODBC 为 SQL 语句中的参数分配存储空间。Connector/ODBC 5.2通过or 类型说明符添加了对outinout 参数的 支持。(和 列不支持Outinout参数。)SQL_PARAM_OUTPUTSQL_PARAM_INPUT_OUTPUTLONGTEXTLONGBLOB
SQLGetCursorName 是的 ISO 92 返回与语句句柄关联的游标名称。
SQLSetCursorName 是的 ISO 92 指定游标名称。
SQLSetScrollOptions 是的 ODBC 设置控制光标行为的选项。

表 7.5 用于提交请求的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLExecute 是的 ISO 92 执行准备好的语句。
SQLExecDirect 是的 ISO 92 执行一条语句
SQLNativeSql 是的 ODBC 返回由驱动程序翻译的 SQL 语句的文本。
SQLDescribeParam ODBC 返回语句中特定参数的描述。连接器/ODBC 不支持——不应信任返回的结果。
SQLNumParams 是的 ISO 92 返回语句中参数的数量。
SQLParamData 是的 ISO 92 与 一起使用SQLPutData以在执行时提供参数数据。(对长数据值有用。)
SQLPutData 是的 ISO 92 发送参数的部分或全部数据值。(对长数据值有用。)

表 7.6 用于检索结果和有关结果信息的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLRowCount 是的 ISO 92 返回受插入、更新或删除请求影响的行数。
SQLNumResultCols 是的 ISO 92 返回结果集中的列数。
SQLDescribeCol 是的 ISO 92 描述结果集中的列。
SQLColAttribute 是的 ISO 92 描述结果集中列的属性。
SQLColAttributes 是的 弃用 描述结果集中列的属性。
SQLFetch 是的 ISO 92 返回多个结果行。
SQLFetchScroll 是的 ISO 92 返回可滚动的结果行。
SQLExtendedFetch 是的 弃用 返回可滚动的结果行。
SQLSetPos 是的 ODBC 将游标定位在获取的数据块中,并使应用程序能够刷新行集中的数据或更新或删除结果集中的数据。
SQLBulkOperations 是的 ODBC 执行批量插入和批量书签操作,包括更新、删除和按书签获取。

表 7.7 用于检索错误或诊断信息的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLError 是的 弃用 返回额外的错误或状态信息
SQLGetDiagField 是的 ISO 92 返回附加诊断信息(诊断数据结构的单个字段)。
SQLGetDiagRec 是的 ISO 92 返回附加诊断信息(诊断数据结构的多个字段)。

表 7.8 用于获取有关数据源系统表的信息的 ODBC API 调用(目录函数)项目

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLColumnPrivileges 是的 ODBC 返回一个或多个表的列列表和相关权限。
SQLColumns 是的 X/打开 返回指定表中的列名列表。
SQLForeignKeys 是的 ODBC 返回构成外键的列名列表(如果它们存在于指定表中)。
SQLPrimaryKeys 是的 ODBC 返回构成表主键的列名列表。
SQLSpecialColumns 是的 X/打开 返回有关唯一标识指定表中行的最佳列集的信息,或当事务更新行中的任何值时自动更新的列的信息。
SQLStatistics 是的 ISO 92 返回有关单个表的统计信息以及与该表关联的索引列表。
SQLTablePrivileges 是的 ODBC 返回表列表和与每个表关联的权限。
SQLTables 是的 X/打开 返回存储在特定数据源中的表名列表。

表 7.9 执行事务的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLTransact 是的 弃用 提交或回滚事务
SQLEndTran 是的 ISO 92 提交回滚事务。_

表 7.10 用于终止语句的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLFreeStmt 是的 ISO 92 结束语句处理,丢弃挂起的结果,并且可以选择释放与语句句柄关联的所有资源。
SQLCloseCursor 是的 ISO 92 关闭已在语句句柄上打开的游标。
SQLCancel 是的 ISO 92 取消 SQL 语句。

表 7.11 用于终止连接的 ODBC API 调用

函数名称 连接器/ODBC 支持吗? 标准 目的
SQLDisconnect 是的 ISO 92 关闭连接。
SQLFreeHandle 是的 ISO 92 释放环境、连接、语句或描述符句柄。
SQLFreeConnect 是的 弃用 释放连接句柄。
SQLFreeEnv 是的 弃用 释放环境句柄。