Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Après avoir établi une connexion à une source de données analytique, vous pouvez utiliser un AdomdCommand objet pour exécuter des commandes et retourner des résultats à partir de cette source de données. Ces commandes peuvent récupérer des données à l’aide d’expressions multidimensionnelles (MDX), d’extensions d’exploration de données (DMX) ou même d’une syntaxe limitée de SQL. En outre, vous pouvez utiliser des commandes ASSL (Analysis Services Scripting Language) pour modifier la base de données sous-jacente.
Création d’une commande
Avant d’exécuter une commande, vous devez la créer. Vous pouvez créer une commande à l’aide de l’une des deux méthodes suivantes :
La première méthode utilise le AdomdCommand constructeur, qui peut prendre une commande pour s’exécuter sur la source de données et un AdomdConnection objet sur lequel exécuter la commande.
La deuxième méthode utilise la CreateCommand méthode de l’objet AdomdConnection .
Le texte de la commande à exécuter peut être interrogé et modifié à l’aide de la CommandText propriété. Les commandes que vous créez n’ont pas besoin de retourner des données après leur exécution.
Exécution d’une commande
Une fois que vous avez créé un AdomdCommand objet, il existe plusieurs Execute méthodes que votre commande peut utiliser pour effectuer différentes actions. Le tableau suivant répertorie certaines de ces actions.
| À | Utiliser cette méthode |
|---|---|
| Retourner les résultats sous la forme d’un flux de données | ExecuteReader pour renvoyer un AdomdDataReader objet |
| Retourner un CellSet objet | ExecuteCellSet |
| Exécuter des commandes qui ne retournent pas de lignes | ExecuteNonQuery |
| Retourner un objet XMLReader qui contient les données dans un format xml for Analysis (XMLA) conforme | ExecuteXmlReader |
Exemple d’exécution d’une commande
Cet exemple utilise la AdomdCommand commande XMLA qui traite le cube Adventure Works DW sur le serveur local, sans retourner de données.
void ExecuteXMLAProcessCommand()
{
//Open a connection to the local server
AdomdConnection conn = new AdomdConnection("Data Source=localhost");
conn.Open();
//Create a command, and assign it an XMLA command to process the cube.
AdomdCommand cmd = conn.CreateCommand();
cmd.CommandText = "<Process xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">\r\n" +
@"<Object>
<DatabaseID>Adventure Works DW Standard Edition</DatabaseID>
<CubeID>Adventure Works DW</CubeID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>";
//Execute the command
int result = cmd.ExecuteNonQuery();
//Close the connection
conn.Close();
}