分配连接句柄

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

应用程序可以连接到数据源或驱动程序之前,必须分配连接句柄。 这是通过将 HandleType 参数设置为 SQL_HANDLE_DBC 和 InputHandle(指向已初始化的环境句柄)调用 SQLAllocHandle 来完成的。

连接的特征通过设置连接属性控制。 例如,因为事务发生在连接级别,所以事务隔离级别就是一个连接属性。 与此类似,登录超时或超时前尝试连接的等待秒数,也是连接属性。

连接属性使用 SQLSetConnectAttr 设置,其当前设置通过 SQLGetConnectAttr 进行检索。 如果在尝试连接之前调用 SQLSetConnectAttr ,ODBC 驱动程序管理器会将属性存储在其连接结构中,并在驱动程序中将其设置为连接过程的一部分。 有些连接属性必须在应用程序尝试连接前设置,另一些则可以在连接完成之后设置。 例如,SQL_ATTR_ODBC_CURSORS 必须在连接前设置,但 SQL_ATTR_AUTOCOMMIT 可以在连接后设置。

针对 SQL Server 版本 7.0 或更高版本运行的应用程序有时可以通过重置表格数据流 (TDS) 网络数据包大小来提高其性能。 服务器上设置的默认数据包大小为 4 KB。 一般来说,数据包大小介于 4 KB 到 8 KB 之间时表现出的性能最佳。 如果测试表明采用另一数据包大小时,应用程序的性能表现更佳,则可以重置数据包大小。 ODBC 应用程序可以在连接之前执行此操作,方法是使用 SQL_ATTR_PACKET_SIZE 选项调用 SQLSetConnectAttr 。 有些应用程序在使用较大的数据包时表现更佳,但数据包大小大于 8 KB 时,性能鲜有提高。

SQL Server Native Client ODBC 驱动程序具有许多扩展连接属性,应用程序可以使用这些属性来增加其功能。 在这些属性当中,有些控制可以在数据源中指定的相同选项,并覆盖数据源中设置的任何选项。 例如,如果应用程序使用带引号的标识符,它可以将特定于驱动程序的属性 SQL_COPT_SS_QUOTED_IDENT 设置为 SQL_QI_ON,确保无论数据源中如何设置,该选项始终这样设置。

另请参阅

与 SQL Server 通信 (ODBC)