Compartir vía


Conexiones en ADOMD.NET

En ADOMD.NET, se usa el objeto para AdomdConnection abrir conexiones con orígenes de datos analíticos, como bases Microsoft SQL Server Analysis Services datos. Cuando la conexión ya no sea necesaria, deberá cerrarla explícitamente.

Abrir una conexión

Para abrir una conexión en ADOMD.NET, primero debe especificar una cadena de conexión a una base de datos y un origen de datos analíticos válidos. A continuación, debe abrir explícitamente la conexión a ese origen de datos.

Especificar un origen de datos multidimensionales

Para especificar un origen de datos analíticos y una base de datos, establezca la ConnectionString propiedad del AdomdConnection objeto . La cadena de conexión especificada para la ConnectionString propiedad es una OLE DB compatible con la propiedad . ADOMD.NET utiliza la cadena de conexión especificada para determinar cómo conectarse al servidor.

La ConnectionString propiedad se puede establecer en un objeto existente AdomdConnection o durante la creación de una instancia de un AdomdConnection objeto . El código siguiente muestra cómo establecer la propiedad ConnectionString al crear una conexión ADOMD:

Dim advwrksConnection As New AdomdConnection("Data Source=localhost;Catalog=AdventureWorksAS")  
System.Diagnostics.Debug.Writeline(advwrksConnection.ConnectionString)  
AdomdConnection advwrksConnection = new AdomdConnection("Data Source=localhost;Catalog=AdventureWorksAS");  
System.Diagnostics.Debug.Writeline(advwrksConnection.ConnectionString);  

Abrir una conexión con el origen de datos.

Después de especificar la cadena de conexión, debe usar el método Open para abrir la conexión. Al abrir un objeto AdomdConnection , puede establecer varios niveles de seguridad para la conexión. El nivel de seguridad que se usa para la conexión depende del valor de la configuración de la cadena de conexión ProtectionLevel . Para obtener más información sobre cómo abrir conexiones seguras en ADOMD.NET, vea Establecer conexiones seguras en ADOMD.NET.

Trabajar con una conexión

Cada conexión abierta tiene lugar en una sesión, lo que proporciona compatibilidad con las operaciones con estado. Una sesión puede compartirse entre varias conexiones abiertas. Compartir una sesión permite que más de un cliente comparta el mismo contexto. Para obtener más información, vea Trabajar con conexiones y sesiones en ADOMD.NET.

Puede utilizar una conexión abierta para recuperar metadatos y datos y ejecutar comandos. Para obtener más información, vea Recuperar metadatos de un origen de datos analíticos, Recuperar datos de un origen de datos analíticos y Ejecutar comandos en un origen de datos analíticos.

Cuando la conexión está abierta, puede recuperar datos y metadatos y ejecutar comandos desde una transacción de lectura confirmada, en la que se mantienen los bloqueos compartidos mientras se leen los datos para evitar la lectura de datos sucios. Los datos se pueden cambiar antes de que finalice la transacción, lo que da como resultado lecturas no repetibles o datos fantasma. Para obtener más información, vea Realizar transacciones en ADOMD.NET.

Cerrar una conexión

Se recomienda cerrar explícitamente un AdomdConnection objeto en cuanto ya no necesite la conexión. Para cerrar explícitamente la conexión, use los métodos Close y Dispose del AdomdConnection objeto .

Es posible que una conexión que no se cierre explícitamente, pero que esté fuera del ámbito, no libere los recursos del servidor lo suficientemente rápido como para permitir que las aplicaciones cliente de Analysis Services de alta simultaneidad abran de forma eficaz nuevas conexiones. En función de cómo haya creado la conexión, la sesión AdomdConnection usada por el objeto puede permanecer activa si la conexión no se cierra explícitamente.

Para obtener más información sobre las sesiones, vea Trabajar con conexiones y sesiones en ADOMD.NET.

Importante

En el método Finalize de cualquier clase implementada, no llame a los métodos Close o DisposeAdomdConnection de un objeto, AdomdDataReader objeto o cualquier otro objeto administrado. En un finalizador, libere solamente los recursos no administrados que pertenezcan directamente a la clase implementada. Si la clase implementada no posee ningún recurso no administrado, no incluya un método Finalize en la definición de clase.