创建驱动程序应用程序

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除SQL Server Native Client(通常缩写为 SNAC)。 不建议在新应用程序开发工作中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 请在此后切换为使用新版 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新版的 Microsoft OLE DB Driver for SQL Server。 对于作为 SQL Server 数据库引擎组件随附的 SQLNCLI (版本 2012 到 2019) ,请参阅此支持生命周期异常

ODBC 体系结构具有四个组件,可以执行以下功能:

组件 函数
应用程序 调用 ODBC 函数以与 ODBC 数据源通信、提交 SQL 语句以及处理结果集。
驱动程序管理器 管理应用程序和该应用程序使用的所有 ODBC 驱动程序之间的通信。
驱动程序 处理来自应用程序的所有 ODBC 函数调用、连接到数据源、将 SQL 语句从应用程序传递到数据源以及将结果返回给应用程序。 必要时,驱动程序将来自应用程序的 ODBC SQL 转换为数据源使用的本机 SQL。
数据源 包含驱动程序访问 DBMS 中数据的特定实例所需的所有信息。

使用 SQL Server Native Client ODBC 驱动程序与 SQL Server 实例通信的应用程序执行以下任务:

  • 与数据源连接

  • 将 SQL 语句发送给数据源

  • 处理来自数据源的语句结果

  • 处理错误和消息

  • 终止与数据源的连接

为 SQL Server Native Client ODBC 驱动程序编写的更复杂的应用程序也可能执行以下任务:

  • 使用游标控制在结果集中的位置

  • 请求进行事务控制的提交或回滚操作

  • 执行涉及两个或多个服务器的分布式事务

  • 在远程服务器上运行存储过程

  • 调用目录函数来查询有关结果集的属性

  • 执行大容量复制操作

  • (varchar (max) nvarchar (max) varbinary (max) 列) 操作管理大型数据

  • 在配置数据库镜像时使用重新连接逻辑以便于故障转移

  • 记录性能数据和长时间运行的查询

若要进行 ODBC 函数调用,C 或 C++ 应用程序必须包括 sql.h、sqlext.h 和 sqltypes.h 头文件。 若要进行 ODBC 安装程序 API 函数调用,应用程序必须包括 odbcinst.h 头文件。 Unicode ODBC 应用程序必须包括 sqlucode.h 头文件。 ODBC 应用程序必须与 odbc32.lib 文件链接。 调用 ODBC 安装程序 API 函数的 ODBC 应用程序必须与 odbccp32.lib 文件链接。 这些文件包括在 Windows 平台 SDK 中。

许多 ODBC 驱动程序(包括 SQL Server Native Client ODBC 驱动程序)都提供特定于驱动程序的 ODBC 扩展。 若要利用SQL Server Native Client ODBC 驱动程序特定的扩展,应用程序应包含 sqlncli.h 头文件。 此头文件包含:

  • SQL Server Native Client ODBC 驱动程序特定的连接属性。

  • SQL Server Native Client ODBC 驱动程序特定的语句属性。

  • SQL Server Native Client ODBC 驱动程序特定的列属性。

  • SQL Server特定的数据类型。

  • SQL Server特定的用户定义数据类型。

  • SQL Server Native Client ODBC 驱动程序特定的 SQLGetInfo 类型。

  • SQL Server Native Client ODBC 驱动程序诊断字段。

  • SQL Server特定的诊断动态函数代码。

  • 当绑定到 C 数据类型的列SQL_C_BINARY) 时, (返回特定于SQL Server本机 C 数据类型的 C/C++ 类型定义。

  • SQLPERF 数据结构的类型定义。

  • 大容量复制宏和原型,用于支持通过 ODBC 连接使用大容量复制 API。

  • 调用分布式查询元数据 API 函数,以获取链接服务器及其目录的列表。

任何使用 SQL Server Native Client ODBC 驱动程序的大容量复制功能的 C 或 C++ ODBC 应用程序都必须与 sqlncli11.lib 文件链接。 调用分布式查询元数据 API 函数的应用程序也必须与 sqlncli11.lib 文件链接。 sqlncli.h 和 sqlncli11.lib 文件作为SQL Server开发人员工具的一部分分发。 SQL Server Include 和 Lib 目录应位于编译器的 INCLUDE 和 LIB 路径中,如下所示:

LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;  
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;  

在生成应用程序过程的早期所做的一个设计决策是应用程序是否需要同时进行多个 ODBC 调用。 有两种方法可支持多个并发 ODBC 调用,将在本节的其余主题中介绍。 有关详细信息,请参阅 ODBC 程序员参考

本节内容

另请参阅

SQL Server Native Client (ODBC)