Comportamientos de los cursores
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
ODBC admite las opciones ISO para especificar el comportamiento de los cursores especificando su capacidad de desplazamiento y sensibilidad. Estos comportamientos se especifican estableciendo las opciones SQL_ATTR_CURSOR_SCROLLABLE y SQL_ATTR_CURSOR_SENSITIVITY en una llamada a SQLSetStmtAttr. El controlador ODBC de SQL Server Native Client implementa estas opciones solicitando cursores de servidor con las siguientes características.
Valores de comportamiento de cursor | Características de cursor de servidor solicitadas |
---|---|
SQL_SCROLLABLE y SQL_SENSITIVE | Cursor controlado por conjunto de claves y simultaneidad optimista basada en las versiones |
SQL_SCROLLABLE y SQL_INSENSITIVE | Cursor estático y simultaneidad de solo lectura |
SQL_SCROLLABLE y SQL_UNSPECIFIED | Cursor estático y simultaneidad de solo lectura |
SQL_NONSCROLLABLE y SQL_SENSITIVE | Cursor de solo avance y simultaneidad optimista basada en las versiones |
SQL_NONSCROLLABLE y SQL_INSENSITIVE | Conjunto de resultados predeterminado (solo avance, solo lectura) |
SQL_NONSCROLLABLE y SQL_UNSPECIFIED | Conjunto de resultados predeterminado (solo avance, solo lectura) |
La simultaneidad optimista basada en versiones requiere una columna de marca de tiempo en la tabla subyacente. Si se solicita el control de simultaneidad optimista basado en versiones en una tabla que no tiene una columna de marca de tiempo , el servidor usa la simultaneidad optimista basada en valores.
Desplazamiento
Cuando SQL_ATTR_CURSOR_SCROLLABLE se establece en SQL_SCROLLABLE, el cursor admite todos los valores diferentes para el parámetro FetchOrientation de SQLFetchScroll. Cuando SQL_ATTR_CURSOR_SCROLLABLE se establece en SQL_NONSCROLLABLE, el cursor solo admite un valor FetchOrientation de SQL_FETCH_NEXT.
Confidencialidad
Si SQL_ATTR_CURSOR_SENSITIVITY está establecido en SQL_SENSITIVE, el cursor refleja modificaciones de datos realizadas por el usuario actual o confirmadas por otros usuarios. Si SQL_ATTR_CURSOR_SENSITIVITY está establecido en SQL_INSENSITIVE, el cursor no refleja las modificaciones de datos.