Ejecutar una consulta de SAP mediante el comando EXECQUERY
El proveedor de datos de .NET Framework para mySAP Business Suite expone el sistema SAP como origen de datos ADO.NET. Con el proveedor de datos para SAP, puede ejecutar consultas predefinidas en el sistema SAP ejecutando una instrucción EXECQUERY.
Cómo realizar una consulta mediante el comando EXECQUERY
Para ejecutar consultas sap predefinidas mediante el proveedor de datos para SAP, realice los pasos siguientes:
Para realizar una consulta
Incluya una referencia (y una instrucción using en el código) a Microsoft.Data.SAPClient.
Cree un objeto SAPConnection mediante un proveedor de datos para SAP cadena de conexión. Para obtener más información sobre la cadena de conexión, vea Leer sobre los tipos de proveedor de datos para la cadena de conexión de SAP.
Abra una conexión al sistema SAP invocando Open en SAPConnection.
Cree un objeto SAPCommand a partir de SAPConnection.
Especifique la instrucción EXECQUERY en la propiedad CommandText de SAPCommand. Si es necesario, puede especificar parámetros mediante objetos SAPParameter . Para obtener más información sobre cómo ejecutar consultas definidas en un sistema SAP mediante una instrucción EXECQUERY, consulte Sintaxis para una instrucción EXECQUERY en SAP.
Ejecute el comando para realizar la consulta y obtener los resultados en un objeto SAPDataReader.
Lea los resultados de SAPDataReader.
Cuando haya terminado de usarlos, cierre (o elimine) SAPConnection y SAPDataReader.
El proveedor de datos para SAP también expone una clase SAPClientFactory , que puede usar para crear objetos SAPConnection, SAPCommand y SAPConnection . Para obtener más información sobre las clases de ADO.NET extendidas por el proveedor de datos para SAP, consulte Extensión de interfaces de ADO.NET con el adaptador de SAP.
Ejemplo
En el ejemplo siguiente se escriben los resultados de una consulta, ZTEST1, en la consola.
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());
}
}
}
}
}
}
Consulte también
Uso del proveedor de datos de .NET Framework para mySAP Business Suite
Muestras