适用于:SQL Server
Azure 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 。 |