viernes, 15 de noviembre de 2013

Cómo establecer el nivel de aislamiento de ODBC

ODBC permite manipular datos de forma independiente de la plataforma de desarrollo. 

AISLAMIENTO

Open Database Connectivity (ODBC) es un marco que ofrece una interfaz de programación de aplicaciones (API) para permitir el acceso independiente de la plataforma a los datos almacenados en los sistemas de bases de datos heterogéneas. Niveles de aislamiento de transacción preservar la integridad de los datos en los sistemas de gestión de bases de datos mediante el control de acceso a los datos concurrentes. Puede acceder a la API de ODBC directamente a través de lenguajes de programación y aplicaciones varias. ODBC permite cinco transacciones de aislamiento niveles: SQL_TXN_READ_UNCOMMITTED, SQL_TXN_READ_COMMITTED, SQL_TXN_REPEATABLE_READ, SQL_TXN_SERIALIZABLE y SQL_TXN_VERSIONING. El primero de cuatro restringen concurrencia con el fin de preservar la integridad de los datos, mientras que SQL_TXN_VERSIONING tiene menos impacto en la concurrencia. Se establece el aislamiento de nivel utilizando la función SQLSetConnectAttr en la fase inicial del programa.



Lo que necesita

Controladores ODBC instalados

Editor de lenguaje de programación

Database Sugiera Edita configuración



Inicie la aplicación de edición de lenguaje de programación, haga clic en Inicio. Seleccione Todos los programas y, a continuación, seleccione la aplicación desde el menú.



Inicie un nuevo proyecto mediante la selección - en el menú Archivo - Nuevo y Proyecto. A continuación, se elija el tipo de proyecto correspondiente de las opciones. Para Visual C + + o Visual Basic, que se elija Aplicación para Windows.



Escriba un nombre para el proyecto y haga clic en Guardar.

Proceso



Asignar los mangos requeridos. Primero tiene que inicializar el entorno de ODBC y asignar el identificador de entorno antes de poder hacer alguna llamada a los elementos de la API de ODBC. Usted necesita declarar una variable de tipo SQLHENV o SQLHANDLE dependiendo del lenguaje de programación, y pasarla a la función SQLAllocHandle. Según MSDN, la sintaxis correcta es:



SQLRETURN SQLAllocHandle (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE * OutputHandlePtr);



Por ejemplo, esta es la forma en que se implementaría en Visual C + +:



SQLHANDLE OdbcEnvironmentVariable;



SQLRETURN SQLReturnVariable;



SQLReturnVariable = SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, OdbcEnvironmentVariable);



Establezca los atributos de entorno necesarias. Es necesario establecer el atributo de entorno ODBC utilizando la función SQLSetEnvAttr (). Esto le indicará a la aplicación de la versión de ODBC que utilice. La sintaxis es la siguiente:



SQLRETURN SQLSetEnvAttr (SQLHENV EnvironmentHandle, SQLINTEGER atributo, SQLPOINTER ValuePtr, SQLINTEGER StringLength);



Por ejemplo, para establecer el entorno para ODBC 3.0 utilizando Visual C + +, debe escribir:



SQLReturnVariable = SQLSetEnvAttr (OdbcEnvironmentVariable, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER);



Asigne el identificador de conexión. Es necesario establecer un identificador de conexión para permitir la aplicación para conectarse a la base de datos. Usted necesita declarar una variable de tipo SQLHDBC o SQLHANDLE y pasarla a la función SQLAllocHandle con HandleType de SQL_HANDLE_DBC. Por ejemplo:



SQLHANDLE DBConnectionHandle;



SQLReturnVariable = SQLAllocHandle (SQL_HANDLE_DBC, OdbcEnvironmentVariable, DBConnectionHandle)



Establezca una conexión y establecer los atributos de conexión. Se establece el nivel de aislamiento de transacción en este punto, con la función SQLSetConnectAttr. La sintaxis es la siguiente:



SQLRETURN SQLSetConnectAttr (SQLHDBC ConnectionHandle, SQLINTEGER atributo, SQLPOINTER ValuePtr, SQLINTEGER StringLength);



Se establece el atributo de SQL_ATTR_TXN_ISOLATION y ValuePtr a SQL_TXN_READ_UNCOMMITTED, SQL_TXN_READ_COMMITTED, SQL_TXN_REPEATABLE_READ o SQL_TXN_SERIALIZABLE, dependiendo del nivel de aislamiento requerido. Por ejemplo:



SQLReturnVariable = SQLSetConnectAttr (DBConnectionHandle, SQL_ATTR_TXN_ISOLATION, SQL_TXN_READ_UNCOMMITTED, 0);



 

No hay comentarios:

Publicar un comentario