Condividi tramite


Eseguire una query SAP usando il comando EXECQUERY

Il provider di dati .NET Framework per mySAP Business Suite espone il sistema SAP come origine dati ADO.NET. Con il provider di dati per SAP, è possibile eseguire query predefinite nel sistema SAP eseguendo un'istruzione EXECQUERY.

Come eseguire una query usando il comando EXECQUERY

Per eseguire query SAP predefinite usando il provider di dati per SAP, seguire questa procedura:

Per eseguire una query

  1. Includere un riferimento (e un'istruzione using nel codice) a Microsoft.Data.SAPClient.

  2. Creare un oggetto SAPConnection usando un provider di dati per la stringa di connessione SAP. Per altre informazioni sulla stringa di connessione, vedere Informazioni sui tipi di provider di dati per la stringa di connessione SAP.

  3. Aprire una connessione al sistema SAP richiamando Open in SAPConnection.

  4. Creare un oggetto SAPCommand da SAPConnection.

  5. Specificare l'istruzione EXECQUERY nella proprietà CommandText di SAPCommand. Se necessario, è possibile specificare i parametri usando gli oggetti SAPParameter . Per altre informazioni su come eseguire query definite in un sistema SAP usando un'istruzione EXECQUERY, vedere Sintassi per un'istruzione EXECQUERY in SAP.

  6. Eseguire il comando per eseguire la query e ottenere i risultati in sapDataReader.

  7. Leggere i risultati da SAPDataReader.

  8. Al termine dell'uso, chiudere (o eliminare) SAPConnection e SAPDataReader.

    Il provider di dati per SAP espone anche una classe SAPClientFactory , che è possibile usare per creare oggetti SAPConnection, SAPCommand e SAPConnection . Per altre informazioni sulle classi ADO.NET estese dal provider di dati per SAP, vedere Estendere le interfacce ADO.NET con l'adattatore SAP.

Esempio

Nell'esempio seguente vengono scritti i risultati di una query ZTEST1 nella 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());  
                    }  
                }  
            }  
        }  
    }  
}  

Vedere anche

Usare il provider di dati .NET Framework per mySAP Business Suite
esempi di