EXECQUERY コマンドを使用して SAP クエリを実行する
.NET Framework Data Provider for mySAP Business Suite は、SAP システムを ADO.NET データ ソースとして公開します。 DATA Provider for SAP を使用すると、EXECQUERY ステートメントを実行することで、SAP システムで定義済みのクエリを実行できます。
EXECQUERY コマンドを使用してクエリを実行する方法
Data Provider for SAP を使用して定義済みの SAP クエリを実行するには、次の手順を実行します。
クエリを実行するには
Microsoft.Data.SAPClient への参照 (およびコード内の using ステートメント) を含めます。
DATA Provider for SAP 接続文字列を使用して SAPConnection オブジェクトを作成します。 接続文字列の詳細については、「SAP 接続文字列のデータ プロバイダー型の読み取り」を参照してください。
SAPConnection で Open を呼び出して、SAP システムへの接続を開きます。
SAPConnection から SAPCommand オブジェクトを作成します。
SAPCommand の CommandText プロパティに EXECQUERY ステートメントを指定します。 必要に応じて、 SAPParameter オブジェクトを使用してパラメーターを指定できます。 EXECQUERY ステートメントを使用して SAP システムで定義されたクエリを実行する方法の詳細については、「 SAP での EXECQUERY ステートメントの構文」を参照してください。
コマンドを実行してクエリを実行し、 SAPDataReader で結果を取得します。
SAPDataReader から結果を読み取ります。
使用が完了したら、 SAPConnection と SAPDataReader を閉じる (または破棄する) 必要があります。
SAP 用データ プロバイダーでは、 SAPClientFactory クラスも公開されます。このクラスを使用して、 SAPConnection、 SAPCommand 、 SAPConnection オブジェクトを作成できます。 Data Provider for SAP によって拡張される ADO.NET クラスの詳細については、「SAP アダプターを使用した ADO.NET インターフェイスの拡張」を参照してください。
例
次の例では、クエリ ZTEST1 の結果をコンソールに書き込みます。
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());
}
}
}
}
}
}
参照
.NET Framework Data Provider for mySAP Business Suite の使用
サンプル