分配连接句柄
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
应用程序可以连接到数据源或驱动程序之前,必须分配连接句柄。 为此,调用 SQLAllocHandle 并将 HandleType 参数设置为SQL_HANDLE_DBC,并且 InputHandle 指向初始化的环境句柄。
连接的特征通过设置连接属性控制。 例如,因为事务发生在连接级别,所以事务隔离级别就是一个连接属性。 与此类似,登录超时或超时前尝试连接的等待秒数,也是连接属性。
连接属性使用 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,确保无论数据源中如何设置,该选项始终这样设置。