Exécuter une requête à l’aide de la commande SELECT dans SAP
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 .NET Framework pour mySAP Business Suite, vous pouvez interroger des artefacts SAP en exécutant une instruction SELECT.
Comment effectuer une requête à l’aide de la commande SELECT
Pour interroger des artefacts SAP à l’aide du fournisseur de données pour SAP, effectuez les étapes suivantes :
Pour effectuer une requête
Incluez une référence (et une instruction using dans votre code) à Microsoft.Data.SAPClient.
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 fournisseur de données pour la chaîne de connexion SAP.
Ouvrez une connexion au système SAP en appelant Open sur sapConnection.
Créez un objet SAPCommand à partir de SAPConnection.
Spécifiez l’instruction SELECT 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’interrogation d’artefacts SAP à l’aide d’une instruction SELECT, consultez Syntaxe d’une instruction SELECT dans SAP. Pour obtenir des exemples de spécification d’une instruction BAPI ou RFC, consultez Exemples d’instruction SELECT.
Exécutez la commande pour exécuter la requête et obtenir les résultats dans un SAPDataReader.
Lisez les résultats de SAPDataReader.
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 les interfaces ADO.NET avec l’adaptateur SAP.
Exemple
L’exemple suivant écrit les résultats d’une sélection sur une instruction de jointure interne paramétrée dans la console.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Data.SAPClient;
namespace SapAdoSelect
{
class Program
{
static void Main(string[] args)
{
/// <summary>
/// select top 1 * from sflight inner join spfli on sflight.connid = spfli.connid where spfli.connid = @connid
/// </summary>
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 = "select top 1 * from sflight inner join spfli on sflight.connid = spfli.connid where spfli.connid = @connid";
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