Comportamientos de los cursores
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 sólo lectura |
SQL_SCROLLABLE y SQL_UNSPECIFIED |
Cursor estático y simultaneidad de sólo lectura |
SQL_NONSCROLLABLE y SQL_SENSITIVE |
Cursor de sólo avance y simultaneidad optimista basada en las versiones |
SQL_NONSCROLLABLE y SQL_INSENSITIVE |
Conjunto de resultados predeterminado (sólo avance, sólo lectura) |
SQL_NONSCROLLABLE y SQL_UNSPECIFIED |
Conjunto de resultados predeterminado (sólo avance, sólo lectura) |
La simultaneidad optimista basada en las versiones requiere una columna timestamp en la tabla subyacente. Si se solicita el control de simultaneidad optimista basado en versiones en una tabla que no tiene una columna timestamp, el servidor utiliza la simultaneidad optimista basada en valores.
Desplazamiento
Si SQL_ATTR_CURSOR_SCROLLABLE está establecido en SQL_SCROLLABLE, el cursor admite todos los diferentes valores para el parámetro FetchOrientation de SQLFetchScroll. Si SQL_ATTR_CURSOR_SCROLLABLE está establecido en SQL_NONSCROLLABLE, el cursor sólo 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.