Comportamentos do cursor

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse Analytics

O ODBC suporta as opções ISO para especificar o comportamento dos cursores, especificando a sua scrollabilidade e sensibilidade. Estes comportamentos são especificados definindo as opções de SQL_ATTR_CURSOR_SCROLLABLE e SQL_ATTR_CURSOR_SENSITIVITY numa chamada ao SQLSetStmtAttr. O driver ODBC do SQL Server Native Client implementa estas opções solicitando cursores de servidor com as seguintes características.

Definições de comportamento do cursor Características do cursor do servidor solicitadas
SQL_SCROLLABLE e SQL_SENSITIVE Cursor orientado por conjuntos de teclas e concorrência otimista baseada em versões
SQL_SCROLLABLE e SQL_INSENSITIVE Cursor estático e concorrência apenas de leitura
SQL_SCROLLABLE e SQL_UNSPECIFIED Cursor estático e concorrência apenas de leitura
SQL_NONSCROLLABLE e SQL_SENSITIVE Cursor apenas para avançar e concorrência otimista baseada em versões
SQL_NONSCROLLABLE e SQL_INSENSITIVE Conjunto de resultados padrão (apenas para frente, só leitura)
SQL_NONSCROLLABLE e SQL_UNSPECIFIED Conjunto de resultados padrão (apenas para frente, só leitura)

A concorrência otimista baseada em versões requer uma coluna de carimbo temporal na tabela subjacente. Se for solicitado controlo de concorrência otimista baseado em versões numa tabela que não tenha uma coluna de carimbo temporal , o servidor utiliza concorrência otimista baseada em valores.

Scrollabilidade

Quando SQL_ATTR_CURSOR_SCROLLABLE está definido para SQL_SCROLLABLE, o cursor suporta todos os diferentes valores para o parâmetro FetchOrientation do SQLFetchScroll. Quando SQL_ATTR_CURSOR_SCROLLABLE está definido para SQL_NONSCROLLABLE, o cursor só suporta um valor FetchOrientation de SQL_FETCH_NEXT.

Sensitivity

Quando SQL_ATTR_CURSOR_SENSITIVITY está definido para SQL_SENSITIVE, o cursor reflete modificações de dados feitas pelo utilizador atual ou comprometidas por outros utilizadores. Quando SQL_ATTR_CURSOR_SENSITIVITY está definido para SQL_INSENSITIVE, o cursor não reflete as modificações dos dados.