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.