ADOMD.NET Client Programming

The ADOMD.NET client components reside within the Microsoft.AnalysisServices.AdomdClient namespace (in microsoft.analysisservices.adomdclient.dll). These client components provide the functionality for client and middle-tier applications to easily query data and metadata from an analytical data store, such as Microsoft SQL Server Analysis Services.

Understanding the ADOMD.NET Client Objects

Before you begin using the ADOMD.NET client components, you should become familiar with the client functionality, object model, and release differences.

For more information: ADOMD.NET Client Functionality, ADOMD.NET Client Concepts and Object Model, ADOMD.NET Release Differences, Migrating From ADO MD To ADOMD.NET

Using the ADOMD.NET Client Objects

In querying an analytical data source, there are a set of common tasks that need to be performed. The following table represents the common tasks in which you use the ADOMD.NET client objects to perform such a query.

Task

Description

Establishing Connections in ADOMD.NET

In ADOMD.NET, you use an AdomdConnection object to establish connections with analytical data sources, such as Analysis Services databases. You can use the AdomdConnection object to run commands, retrieve data, and retrieve metadata from the analytical data source.

Retrieving Metadata from an Analytical Data Source

After a connection has been established, you can use a wide variety of objects to retrieve information about the underlying data source. This functionality allows applications to adapt to the data source to which they have connected.

Executing Commands Against an Analytical Data Source

The AdomdCommand object provides the interfaces necessary for running commands against the underlying analytical data source.

Retrieving Data from an Analytical Data Source

After a command runs, data could be retrieved and parsed using either the CellSet, AdomdDataReader, or System.XmlReader objects.

Performing Transactions in ADOMD.NET

All of the actions listed in the previous rows of this table can take place within a read-committed transaction, in which shared locks are held while the data is being read to avoid dirty reads. The data can still be changed before the end of the transaction, resulting in non-repeatable reads or phantom data. The AdomdTransaction object provides the transaction functionality in ADOMD.NET.

Interaction with the ADOMD.NET object hierarchy typically starts with one or more of the objects in the topmost layer, as described in the following table.

To

Use this object

Connect to an analytical data source

AdomdConnection

The AdomdConnection object represents both a connection to a data source and the data source metadata. For example, you can connect to a Microsoft SQL Server Analysis Services local cube (.cub) file, and then examine the Cubes property to obtain metadata about the cubes present on the analytical data source. This object also represents the implementation of the IDbConnection interface, an interface that is required by all .NET Framework data providers.

Discover the data mining capabilities of the data source

AdomdConnection

The AdomdConnection object exposes several mining collections:

Query the data source

AdomdCommand

The AdomdCommand object represents the statement or query that will be sent to the server. Once a connection is established to a data source, you use a AdomdCommand object to run statements in the supported language, such as Multidimensional Expressions (MDX) or Data Mining Data Mining Extensions (DMX). You can also use a AdomdCommand object to return results in the form of CellSet or AdomdDataReader objects.

Retrieve data in a fast, efficient way

AdomdDataReader

The AdomdDataReader can be created with a call to the Execute or ExecuteReader method of an AdomdCommand object. This object implements the IDbDataReader interface from the System.Data namespace of the .NET Framework class library.

Retrieve analytical data with the highest amount of metadata

CellSet

The CellSet can be created with a call to the Execute or ExecuteCellSet method of an AdomdCommand. Once an AdomdCommand has returned a CellSet, you can then examine the analytical data contained by the CellSet.

Retrieve metadata about cubes, such as available dimensions, measures, named sets, and so on

CubeDef

The CubeDef represents metadata about a cube. You reference the CubeDef from the AdomdConnection.

Retrieve data using the System.Data.IDbDataAdapter interface

AdomdDataAdapter

The AdomdDataAdapter provides read-only support for existing .NET Framework client applications.