通过


ODBC API 参考

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

ODBC API 提供一组标准函数,用于连接到数据源、执行 SQL 语句和检索结果。 每个函数都是一个 C 编程语言函数,其中包含用途、ODBC 版本、语法、参数、返回值、诊断和代码示例。

标准 CLI 一致性级别可以是以下项之一:ISO 92、开放组、ODBC 或已弃用。 标记为符合 ISO 92 的函数也出现在 Open Group 版本 1 中,因为 Open Group 是 ISO 92 的纯超集。 标记为“开放组”的函数也出现在 ODBC 3.x 中,因为 ODBC 3.x 是 Open Group 版本 1 的纯超集。 标记为符合 ODBC 的函数不会出现在任一标准中。 ODBC 3.x 中已弃用标记为已弃用的函数。

SQLGetDiagField 函数说明描述如何处理诊断信息。 与 SQLSTATE 值关联的文本提供条件的说明,但不规定特定文本。

注释

有关 ODBC 函数的特定于驱动程序的信息,请参阅驱动程序部分。

处理分配和管理

这些函数为环境、连接、语句和描述符分配和释放句柄。 句柄是 ODBC 应用程序中跟踪状态的主要机制。

功能 Description
SQLAllocHandle 分配环境、连接、语句或描述符句柄。 这是替换已弃用的分配函数的 ODBC 3.x 函数。
SQLFreeHandle 释放环境、连接、语句或描述符句柄和释放关联的资源。
SQLAllocConnect 分配连接句柄。 ODBC 3.x 中已弃用;请改用 SQLAllocHandle
SQLAllocEnv 分配环境句柄。 ODBC 3.x 中已弃用;请改用 SQLAllocHandle
SQLAllocStmt 分配语句句柄。 ODBC 3.x 中已弃用;请改用 SQLAllocHandle
SQLFreeConnect 释放连接句柄。 ODBC 3.x 中已弃用;请改用 SQLFreeHandle
SQLFreeEnv 释放环境句柄。 ODBC 3.x 中已弃用;请改用 SQLFreeHandle
SQLFreeStmt 停止语句处理、关闭关联的游标、放弃挂起的结果,并选择性地释放与语句句柄关联的资源。

连接函数

这些函数建立和管理与数据源的连接。 它们支持各种连接方法,包括标准连接、特定于驱动程序的对话和迭代浏览。

功能 Description
SQLConnect 使用数据源名称、用户 ID 和密码建立与数据源的连接。
SQLDriverConnect 使用连接字符串建立连接。 支持特定于驱动程序的对话框以获取其他连接信息。
SQLBrowseConnect 支持一种迭代方法,用于发现和枚举连接到数据源所需的属性。
SQLDisconnect 关闭与数据源的连接并释放关联的资源。
SQLDataSources 返回可用数据源的列表。 在驱动程序管理器上调用,而不是特定的驱动程序。
SQLDrivers 返回已安装驱动程序及其属性的列表。 在驱动程序管理器上调用。

语句准备和执行

这些函数准备和执行 SQL 语句。 ODBC 支持直接执行和准备的执行,并且准备好的执行为重复执行的语句提供更好的性能。

功能 Description
SQLPrepare 准备 SQL 语句以供以后执行。 数据源编译并优化语句。
SQLExecute 执行已准备的语句。 在调用此函数之前调用 SQLPrepare
SQLExecDirect 在单个调用中准备和执行 SQL 语句。 用于只执行一次的语句。
SQLNativeSql 返回驱动程序修改的 SQL 字符串,显示驱动程序如何转换 ODBC SQL 语法。
SQLCancel 取消对语句的处理。 可以取消异步执行的函数或在另一个线程上运行的函数。
SQLCancelHandle 取消对连接或语句的处理。 比 SQLCancel 取消连接函数更灵活。
SQLCompleteAsync 确定异步函数何时完成。 与基于通知的异步处理一起使用。

参数绑定

这些函数将应用程序变量绑定到 SQL 语句中的参数标记。 参数在准备好的语句中启用动态值。

功能 Description
SQLBindParameter 将应用程序变量绑定到 SQL 语句中的参数标记。 支持输入、输出和输入/输出参数。
SQLNumParams 返回 SQL 语句中的参数数。
SQLDescribeParam 返回参数标记的说明,包括数据类型、大小和精度。
SQLParamData 用于 SQLPutData 在执行时提供参数数据。 返回需要数据的参数。
SQLPutData 在执行时发送参数的部分或全部数据值。 支持区块中的大型数据。
SQLSetParam 绑定参数。 ODBC 3.x 中已弃用;请改用 SQLBindParameter
SQLParamOptions 设置参数数组的选项。 ODBC 3.x 中已弃用;请改用语句属性。

结果集绑定和检索

这些函数将应用程序缓冲区绑定到结果集列,并从查询结果中检索数据。

功能 Description
SQLBindCol 将应用程序变量绑定到结果集列,以便执行后续提取作。
SQLFetch 将结果集中的下一行数据集提取到绑定列中。
SQLFetchScroll 从结果集中提取指定的行集。 支持滚动到第一个、最后一个、下一个、上一个、上一个、绝对和相对位置。
SQLGetData 在或SQLFetchScroll之后SQLFetch检索单个列的数据。 适用于大型数据或未绑定列。
SQLExtendedFetch 提取指定的数据行集。 ODBC 3.x 中已弃用;请改用 SQLFetchScroll
SQLMoreResults 确定语句上是否提供了更多结果,并前进到下一个结果集。
SQLRowCount 返回受 UPDATE、INSERT 或 DELETE 语句影响的行数。

游标作

这些函数管理行集上的游标行为、定位和批量作。

功能 Description
SQLSetPos 设置行集中的游标位置,并允许应用程序在该位置刷新、更新或删除数据。
SQLBulkOperations 对行集执行批量插入、更新、删除或按书签提取作。
SQLCloseCursor 关闭已在语句上打开的游标并放弃挂起的结果。
SQLGetCursorName 返回与语句关联的游标名称。
SQLSetCursorName 指定定位 UPDATE 和 DELETE 语句的游标名称。
SQLSetScrollOptions 设置游标行为的选项。 ODBC 3.x 中已弃用;请改用语句属性。

目录函数

这些函数检索有关数据库结构的元数据,包括表、列、索引、特权和存储过程。

功能 Description
SQLTables 返回数据源中表名的列表。 支持按目录、架构和表类型进行筛选。
SQLColumns 返回指定表的列名及其属性的列表。
SQLPrimaryKeys 返回构成表主键的列。
SQLForeignKeys 返回表中的外键或引用表的主键的其他表中的外键。
SQLStatistics 返回有关表及其关联的索引列表的统计信息。
SQLSpecialColumns 返回唯一标识行或列的列,这些列在更新行中的任何值时自动更新。
SQLColumnPrivileges 返回表的列和关联权限的列表。
SQLTablePrivileges 返回与每个表关联的表和特权的列表。
SQLProcedures 返回数据源中存储过程名称的列表。
SQLProcedureColumns 返回指定过程的结果集中的输入/输出参数和列的列表。
SQLGetTypeInfo 返回数据源支持的数据类型的相关信息。

描述符作

这些函数获取和设置描述符值。 描述符包含有关参数和结果集列的元数据。

功能 Description
SQLGetDescField 返回描述符记录的单个字段的值。
SQLGetDescRec 在单个调用中返回描述符记录的多个字段。
SQLSetDescField 设置描述符记录的单个字段的值。
SQLSetDescRec 在单个调用中设置描述符记录的多个字段。
SQLCopyDesc 将描述符信息从一个描述符句柄复制到另一个描述符句柄。

特性函数

这些函数获取和设置环境、连接和语句的属性。 属性控制 ODBC 行为的各个方面。

功能 Description
SQLSetEnvAttr 设置影响该环境中所有连接的环境属性。
SQLGetEnvAttr 返回环境特性的值。
SQLSetConnectAttr 设置影响连接及其上的语句的连接属性。
SQLGetConnectAttr 返回连接特性的值。
SQLSetStmtAttr 设置语句属性。 包括游标、查询超时和参数设置。
SQLGetStmtAttr 返回语句特性的值。
SQLSetConnectOption 设置连接选项。 ODBC 3.x 中已弃用;请改用 SQLSetConnectAttr
SQLGetConnectOption 返回连接选项的值。 ODBC 3.x 中已弃用;请改用 SQLGetConnectAttr
SQLSetStmtOption 设置语句选项。 ODBC 3.x 中已弃用;请改用 SQLSetStmtAttr
SQLGetStmtOption 返回语句选项的值。 ODBC 3.x 中已弃用;请改用 SQLGetStmtAttr

诊断和信息函数

这些函数检索诊断信息、错误消息、驱动程序功能和数据源信息。

功能 Description
SQLGetDiagField 返回诊断记录中包含错误、警告和状态信息的字段的值。
SQLGetDiagRec 返回诊断记录的多个常用字段,包括 SQLSTATE、本机错误代码和消息文本。
SQLError 返回错误信息。 ODBC 3.x 中已弃用;请改用 SQLGetDiagRec
SQLGetFunctions 返回有关驱动程序是否支持特定 ODBC 函数的信息。
SQLGetInfo 返回有关驱动程序和数据源的常规信息,包括支持的特性和功能。

结果集元数据

这些函数返回有关结果集结构的信息。

功能 Description
SQLNumResultCols 返回结果集中的列数。
SQLDescribeCol 返回结果集列的列名、数据类型、精度、小数位数和可为 null 性。
SQLColAttribute 返回结果集中列的描述符信息。 比 . 更 SQLDescribeCol灵活。
SQLColAttributes 返回列的属性。 ODBC 3.x 中已弃用;请改用 SQLColAttribute

事务管理

这些函数管理事务边界,控制何时提交或回滚更改。

功能 Description
SQLEndTran 提交或回滚事务。 可应用于环境或单个连接上的所有连接。
SQLTransact 提交或回滚事务。 ODBC 3.x 中已弃用;请改用 SQLEndTran