Tipos de simultaneidad

Para resolver el problema de la simultaneidad reducida en los cursores, ODBC expone cuatro tipos diferentes de simultaneidad de cursores:

  • Solo lectura El cursor puede leer datos, pero no puede actualizar ni eliminar datos. Es el tipo de simultaneidad predeterminado. Aunque DBMS puede bloquear filas para aplicar los niveles de aislamiento de lectura repetible y serializable, puede usar bloqueos de lectura en lugar de bloqueos de escritura. Esto da como resultado una mayor simultaneidad, porque, como mínimo, las demás transacciones pueden leer los datos.

  • Bloqueo El cursor usa el nivel más bajo de bloqueo necesario para asegurarse de que puede actualizar o eliminar filas en el conjunto de resultados. Esto suele provocar niveles de simultaneidad muy bajos, especialmente en los niveles de aislamiento de transacciones de lectura repetible y serializable.

  • Simultaneidad optimista mediante versiones de fila y simultaneidad optimista mediante valores El cursor usa la simultaneidad optimista: actualiza o elimina filas solo si no han cambiado desde que se leyeron por última vez. Para detectar cambios, compara las versiones de fila o los valores. No hay ninguna garantía de que el cursor pueda actualizar o eliminar una fila, pero la simultaneidad es mucho mayor que cuando se usa el bloqueo. Para obtener más información, consulte la siguiente sección, Simultaneidad optimista.

Una aplicación especifica qué tipo de simultaneidad desea que el cursor use con el atributo de instrucción SQL_ATTR_CONCURRENCY. Para determinar qué tipos se admiten, llama a SQLGetInfo con la opción SQL_SCROLL_CONCURRENCY.