连接属性是连接的特征。 例如,由于事务发生在连接级别,事务隔离级别是连接属性。 同样,连接超时时间,即在连接前等待的秒数,是连接属性之一。
连接属性是使用 SQLSetConnectAttr 设置的,并使用 SQLGetConnectAttr 检索到的当前设置。 如果在加载驱动程序之前调用 SQLSetConnectAttr ,驱动程序管理器将属性存储在其连接结构中,并在驱动程序中将其设置为连接过程的一部分。 应用程序无需设置任何连接属性;所有连接属性都具有默认值,其中一些是特定于驱动程序的。
可以在连接之前或之后设置连接属性,也可以根据属性和驱动程序设置连接属性。 登录超时(SQL_ATTR_LOGIN_TIMEOUT)适用于连接过程,仅在连接之前设置有效。 指定在连接之前是否要使用 ODBC 游标库(SQL_ATTR_ODBC_CURSORS)和网络数据包大小(SQL_ATTR_PACKET_SIZE)的属性,因为 ODBC 游标库位于驱动程序管理器和驱动程序之间,因此必须在驱动程序之前加载。
用于指定数据源是只读还是读写(SQL_ATTR_ACCESS_MODE)和当前目录(SQL_ATTR_CURRENT_CATALOG)可以在连接之前或之后设置属性,具体取决于驱动程序。 在连接之前,互操作应用程序会设置这些参数,因为某些驱动程序不支持在连接后更改这些参数。
某些连接属性在建立连接之前具有默认值,而其他属性则没有。 其中包括SQL_ATTR_ACCESS_MODE、SQL_ATTR_AUTOCOMMIT、SQL_ATTR_LOGIN_TIMEOUT、SQL_ATTR_ODBC_CURSORS、SQL_ATTR_TRACE和SQL_ATTR_TRACEFILE。
连接后必须设置转换连接属性(SQL_ATTR_TRANSLATE_DLL和SQL_ATTR_TRANSLATE_OPTION)。
可以随时设置所有其他连接属性。 有关详细信息,请参阅 SQLSetConnectAttr 函数说明。 (无法通过调用 SQLSetEnvAttr 在环境级别设置连接属性。