Partilhar via


Comportamentos de cursor

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

O ODBC dá suporte às opções ISO para especificar o comportamento de cursores por meio da definição de sua rolagem e sensibilidade. Esses comportamentos são especificados definindo as opções SQL_ATTR_CURSOR_SCROLLABLE e SQL_ATTR_CURSOR_SENSITIVITY em uma chamada para SQLSetStmtAttr. O driver ODBC do SQL Server Native Client implementa essas opções solicitando cursores de servidor com as seguintes características.

Configurações do comportamento de cursor Características de cursor do servidor solicitadas
SQL_SCROLLABLE e SQL_SENSITIVE Cursor controlado por conjunto de chaves e simultaneidade otimista baseada em versão
SQL_SCROLLABLE e SQL_INSENSITIVE Cursor estático e simultaneidade somente leitura
SQL_SCROLLABLE e SQL_UNSPECIFIED Cursor estático e simultaneidade somente leitura
SQL_NONSCROLLABLE e SQL_SENSITIVE Cursor de somente avanço e simultaneidade otimista baseada em versão
SQL_NONSCROLLABLE e SQL_INSENSITIVE Conjunto de resultados padrão (somente avanço, somente leitura)
SQL_NONSCROLLABLE e SQL_UNSPECIFIED Conjunto de resultados padrão (somente avanço, somente leitura)

A simultaneidade otimista baseada em versão requer uma coluna de carimbo de data/hora na tabela subjacente. Se o controle de simultaneidade otimista baseado em versão for solicitado em uma tabela que não tenha uma coluna de carimbo de data/hora , o servidor usará a simultaneidade otimista baseada em valores.

Rolagem

Quando SQL_ATTR_CURSOR_SCROLLABLE é definido como SQL_SCROLLABLE, o cursor dá suporte a todos os valores diferentes para o parâmetro FetchOrientation de SQLFetchScroll. Quando SQL_ATTR_CURSOR_SCROLLABLE é definido como SQL_NONSCROLLABLE, o cursor dá suporte apenas a um valor FetchOrientation de SQL_FETCH_NEXT.

Confidencialidade

Quando SQL_ATTR_CURSOR_SENSITIVITY é definido como SQL_SENSITIVE, o cursor reflete as modificações de dados feitas pelo usuário atual ou confirmadas por outros usuários. Quando SQL_ATTR_CURSOR_SENSITIVITY é definido como SQL_INSENSITIVE, o cursor não reflete as modificações de dados.

Confira também

Usando cursores (ODBC)Propriedades do cursor