分配连接句柄
应用程序可以连接到数据源或驱动程序之前,必须分配连接句柄。 为此,它调用 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,确保无论数据源中如何设置,该选项始终这样设置。