Estabelecendo conexões no ADOMD.NET
No ADOMD.NET, você usa o objeto AdomdConnection para abrir conexões com fontes de dados analíticas, como bancos de dados do MicrosoftSQL ServerAnalysis Services. Quando a conexão não for mais necessária, feche-a explicitamente.
Abrindo uma conexão
Para abrir uma conexão no ADOMD.NET, primeiro especifique uma cadeia de conexão para uma fonte de dados analítica e um banco de dados válidos. Em seguida, abra a conexão explicitamente para a fonte de dados.
Especificando uma fonte de dados multidimensional
Para especificar uma fonte de dados analítica e um banco de dados, defina a propriedade ConnectionString propriedade do objeto AdomdConnection. A cadeia de conexão especificada para a propriedade ConnectionString é uma cadeia de caracteres compatível com OLE DB. O ADOMD.NET usa a cadeia de conexão especificada para determinar como será feita a conexão ao servidor.
A propriedade ConnectionString pode ser definida em um objeto AdomdConnection existente ou durante a criação de uma instância de um objeto AdomdConnection. O código a seguir demonstra como definir a propriedade ConnectionString durante a criação de um [:Microsoft.AnalysisServices.AdomdClient.AdomdConnection]:
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);
Abrindo uma conexão à fonte de dados
Depois de especificar a cadeia de conexão, use o método Open para abrir a conexão. Quando você abre um objeto AdomdConnection, pode definir vários níveis de segurança para a conexão. O nível de segurança usado para a conexão depende do valor da configuração da cadeia de conexão ProtectionLevel. Para obter mais informações sobre como abrir conexões seguras no ADOMD.NET, consulte Estabelecendo conexões seguras no ADOMD.NET.
Trabalhando com uma conexão
Cada conexão aberta existe em uma sessão, fornecendo suporte para operações de monitoração de estado. Uma sessão pode ser compartilhada por mais de uma conexão aberta. O compartilhamento de uma sessão permite que mais de um cliente use o mesmo contexto. Para obter mais informações, consulte Trabalhando com conexões e com sessões no ADOMD.NET.
Você pode usar uma conexão aberta para recuperar metadados, dados e executar comandos. Para obter mais informações, consulte Recuperando metadados de uma fonte de dados analítica, Recuperando dados de uma fonte de dados analítica e Executando comandos em uma fonte de dados analítica.
Enquanto a conexão estiver aberta, você poderá recuperar dados, recuperar metadados e executar comandos de uma transação confirmada por leitura, na qual bloqueios compartilhados são mantidos enquanto os dados são lidos para impedir leituras sujas. Os dados ainda podem ser alterados antes do término da transação, resultando em leituras não-repetíveis ou em dados fantasma. Para obter mais informações, consulte Executando transações no ADOMD.NET.
Fechando uma conexão
Recomendamos que você feche explicitamente um objeto AdomdConnection assim que a conexão não for mais necessária. Para fechar a conexão explicitamente, use os métodos Close e Dispose do objeto AdomdConnection.
Uma conexão que não foi explicitamente fechada, mas que pode sair do escopo, pode não liberar recursos do servidor rápido o suficiente para permitir que aplicativos clientes de alta simultaneidade do Analysis Services abram novas conexões com eficiência. Dependendo da forma como você criou a conexão, a sessão usada pelo objeto AdomdConnection poderá permanecer ativa se a conexão não for fechada explicitamente.
Para obter mais informações sobre as sessões, consulte Trabalhando com conexões e com sessões no ADOMD.NET.
Importante |
---|
No método Finalize de qualquer classe implementada, não chame os métodos Close ou Dispose de um objeto AdomdConnection, de um objeto AdomdDataReader ou de qualquer outro objeto gerenciado. Em um finalizador, só libere os recursos não-gerenciados de propriedade direta da classe implementada. Se a classe implementada não possuir nenhum recurso não-gerenciado, não inclua um método Finalize na definição da classe. |