Compartilhar via


Atributos de instrução

Os atributos de declaração são características da declaração. Por exemplo, se usar marcadores e que tipo de cursor usar com o conjunto de resultados da instrução são considerados 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á nenhum requisito de que um aplicativo defina atributos de instrução; todos os atributos de instrução têm padrões, alguns dos quais são específicos do driver.

Quando um atributo de declaraçã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 que a instrução seja executada. Os atributos de instrução SQL_ATTR_ASYNC_ENABLE e SQL_ATTR_NOSCAN podem ser definidos a qualquer momento, mas não são aplicados até que a instrução seja usada novamente. SQL_ATTR_MAX_LENGTH, SQL_ATTR_MAX_ROWS e atributos de instrução SQL_ATTR_QUERY_TIMEOUT podem ser definidos a qualquer momento, mas é específico do driver se eles são aplicados antes que a instrução seja usada novamente. Os atributos de instrução restantes 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. ODBC 3. os aplicativos x nunca devem definir atributos de instrução no nível da conexão. ODBC 3.x drivers só precisam dar suporte a essa funcionalidade caso precisem trabalhar com aplicativos ODBC 2.x. Para obter mais informações, consulte o Mapeamento 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 atributos de instrução e podem ser definidos no nível da conexão ou no nível da instrução.

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

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