语句属性

语句属性是语句的特征。 例如,是否使用书签以及对语句的结果集使用哪种游标都是语句属性。

语句属性使用 SQLSetStmtAttr 设置,并使用 SQLGetStmtAttr 检索其当前设置。 不要求应用程序设置任何语句属性;所有语句属性都具有默认值,某些语句属性是驱动程序特定的。

何时可以设置语句属性取决于属性本身。 SQL_ATTR_CONCURRENCY、SQL_ATTR_CURSOR_TYPE、SQL_ATTR_SIMULATE_CURSOR 和 SQL_ATTR_USE_BOOKMARKS 语句属性必须在执行语句之前设置。 SQL_ATTR_ASYNC_ENABLE 和 SQL_ATTR_NOSCAN 语句属性可以随时设置,但在再次使用该语句之前不会应用。 SQL_ATTR_MAX_LENGTH、SQL_ATTR_MAX_ROWS 和 SQL_ATTR_QUERY_TIMEOUT 语句属性可以随时设置,但在再次使用该语句之前是否应用这些属性特定于驱动程序。 剩余的语句属性可以随时设置。

注意

ODBC 3.x 中已弃用通过调用 SQLSetConnectAttr 在连接级别设置语句属性的功能。 ODBC 3.x 应用程序不应在连接级别设置语句属性。 如果 ODBC 3.x 驱动程序应该与 ODBC 2.x 应用程序一起使用,则只需要支持此功能。 有关详细信息,请参阅“附录 G:驱动程序后向兼容性准则”中的 SQLSetConnectOption 映射

例外情况是 SQL_ATTR_METADATA_ID 和 SQL_ATTR_ASYNC_ENABLE 属性,这些属性既是连接属性,也是语句属性,可以在连接级别或语句级别设置。

ODBC 3.x 中引入的所有语句属性(SQL_ATTR_METADATA_ID 除外)都不能在连接级别设置。

有关详细信息,请参阅 SQLSetStmtAttr 函数的说明。