Querying with the DataReader
The CData ADO.NET Provider for SAP ERP implements two ADO.NET interfaces you can use to retrieve data from SAP ERP: SAPERPDataAdapter and SAPERPDataReader objects. Whereas SAPERPDataAdapter objects retrieve a single result set of all the data that matches a query, SAPERPDataReader objects fetch data in subset increments as needed.
Using the SAPERPDataReader
The SAPERPDataReader retrieves data faster than the SAPERPDataAdapter because it can retrieve data in pages. As you read data from the SAPERPDataReader, it periodically requests the next page of results from the data source, if required. This causes results to be returned at a faster rate. The following example selects all the columns from the MARA table:
C#
string connectionString = "Host=sap.mydomain.com;User=EXT90033;Password=xxx;Client=800;System Number=09;ConnectionType=Classic;"; using (SAPERPConnection connection = new SAPERPConnection(connectionString)) { SAPERPCommand cmd = new SAPERPCommand("SELECT * FROM MARA", connection); SAPERPDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["MANDT"], rdr["MATNR"])); } }
VB.NET
Dim connectionString As String = "Host=sap.mydomain.com;User=EXT90033;Password=xxx;Client=800;System Number=09;ConnectionType=Classic;" Using connection As New SAPERPConnection(connectionString) Dim cmd As New SAPERPCommand("SELECT * FROM MARA", connection) Dim rdr As SAPERPDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("MANDT"), rdr("MATNR"))) End While End Using