Partager via


Exécuter une requête SAP en utilisant la commande EXECQUERY

Le fournisseur de données .NET Framework pour mySAP Business Suite expose le système SAP en tant que source de données ADO.NET. Avec le fournisseur de données pour SAP, vous pouvez exécuter des requêtes prédéfinies dans le système SAP en exécutant une instruction EXECQUERY.

Comment effectuer une requête à l’aide de la commande EXECQUERY

Pour exécuter des requêtes SAP prédéfinies à l’aide du fournisseur de données pour SAP, procédez comme suit :

Pour effectuer une requête

  1. Incluez une référence (et une instruction using dans votre code) à Microsoft.Data.SAPClient.

  2. Créez un objet SAPConnection à l’aide d’un fournisseur de données pour SAP chaîne de connexion. Pour plus d’informations sur le chaîne de connexion, consultez En savoir plus sur les types de fournisseurs de données pour la chaîne de connexion SAP.

  3. Ouvrez une connexion au système SAP en appelant Open sur SAPConnection.

  4. Créez un objet SAPCommand à partir de SAPConnection.

  5. Spécifiez l’instruction EXECQUERY dans la propriété CommandText de SAPCommand. Si nécessaire, vous pouvez spécifier des paramètres à l’aide d’objets SAPParameter . Pour plus d’informations sur l’exécution de requêtes définies dans un système SAP à l’aide d’une instruction EXECQUERY, consultez Syntaxe d’une instruction EXECQUERY dans SAP.

  6. Exécutez la commande pour exécuter la requête et obtenir les résultats dans un SAPDataReader.

  7. Lisez les résultats de SAPDataReader.

  8. Lorsque vous avez terminé de les utiliser, fermez (ou éliminez) SAPConnection et SAPDataReader.

    Le fournisseur de données pour SAP expose également une classe SAPClientFactory , que vous pouvez utiliser pour créer des objets SAPConnection, SAPCommand et SAPConnection . Pour plus d’informations sur les classes ADO.NET étendues par le fournisseur de données pour SAP, consultez Étendre ADO.NET interfaces avec l’adaptateur SAP.

Exemple

L’exemple suivant écrit les résultats d’une requête, ZTEST1, dans la console.

using System;  
using System.Collections.Generic;  
using System.Text;  
  
using Microsoft.Data.SAPClient;  
  
namespace SapAdoExecQuery  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
           string connstr = "TYPE=A; ASHOST=YourSapHost; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;";  
           using (SAPConnection conn = new SAPConnection(connstr))  
            {  
                conn.Open();  
                using (SAPCommand cmd = conn.CreateCommand())  
                {  
                    cmd.CommandText = "EXECQUERY ZTEST1 @userGRoup='SYSTQV000024',@P1='0000001390',@P2='0000080150'";  
                    cmd.Parameters.Add(new SAPParameter("@connid", 17));                      
                    using (SAPDataReader dr = cmd.ExecuteReader())  
                    {  
                        do  
                        {  
                            int rows = 0;  
                            while (dr.Read())  
                            {  
                                rows++;  
                                StringBuilder b = new StringBuilder();  
                                for (int i = 0; i < dr.FieldCount; i++)  
                                {  
                                    b.Append(dr[i].ToString()+" ");  
                                }  
                                Console.WriteLine("row {0}: {1} ", rows, b.ToString());  
                            }  
                            Console.WriteLine("Number of rows:{0}", rows);  
                        } while (dr.NextResult());  
                    }  
                }  
            }  
        }  
    }  
}  

Voir aussi

Utiliser le fournisseur de données .NET Framework pour mySAP Business Suite
Exemples