Partilhar via


Atributos de instrução

Atributos de instrução são características da instrução. Por exemplo, o uso de marcadores e o tipo de cursor a ser usado com o conjunto de resultados da instrução são atributos de instrução.

Os atributos de instrução são definidos com SQLSetStmtAttr e suas configurações atuais recuperadas com SQLGetStmtAttr. Não há requisitos de que um aplicativo defina quaisquer atributos de instrução. Todos os atributos de instrução têm padrões, alguns dos quais são específicos do driver.

O momento em que um atributo de instrução pode ser definido depende do próprio atributo. Os atributos de instrução SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR e SQL_ATTR_USE_BOOKMARKS devem ser definidos antes da execução da instrução. Os atributos de instrução SQL_ATTR_ASYNC_ENABLE e SQL_ATTR_NOSCAN podem ser configurados a qualquer momento, mas não são aplicados até que a instrução seja usada novamente. Os atributos de instrução SQL_ATTR_MAX_LENGTH, SQL_ATTR_MAX_ROWS e SQL_ATTR_QUERY_TIMEOUT podem ser definidos a qualquer momento, mas a indicação de devem ser aplicados antes de a instrução ser usada novamente é específica do driver. Os demais atributos da instrução podem ser definidos a qualquer momento.

Observação

A capacidade de definir atributos de instrução no nível de conexão chamando SQLSetConnectAttr foi preterida no ODBC 3.x. Os aplicativos do ODBC 3.x nunca devem definir atributos de instrução no nível de conexão. Os drivers do ODBC 3.x só precisarão dar suporte a essa funcionalidade se funcionarem com aplicativos ODBC 2.x. Para obter mais informações, consulte Mapeamento de SQLSetConnectOption no Apêndice G: diretrizes de driver para compatibilidade com versões anteriores.

Uma exceção a isso são os atributos SQL_ATTR_METADATA_ID e SQL_ATTR_ASYNC_ENABLE, que são atributos de conexão e de instrução e podem ser configurados no nível de conexão ou de instrução.

Nenhum dos atributos de instrução introduzidos no ODBC 3.x (exceto SQL_ATTR_METADATA_ID) pode ser definido no nível de conexão.

Para obter mais informações, consulte a descrição da função SQLSetStmtAttr.