Comportamientos de los cursores

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 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 un 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.

Sensibilidad

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.

Consulte también

Uso de cursores (ODBC)Propiedades del cursor