Querying with the DataReader
The CData ADO.NET Provider for SAP Ariba Source implements two ADO.NET interfaces you can use to retrieve data from SAP Ariba: SAPAribaSourceDataAdapter and SAPAribaSourceDataReader objects. Whereas SAPAribaSourceDataAdapter objects retrieve a single result set of all the data that matches a query, SAPAribaSourceDataReader objects fetch data in subset increments as needed.
Using the SAPAribaSourceDataReader
The SAPAribaSourceDataReader retrieves data faster than the SAPAribaSourceDataAdapter because it can retrieve data in pages. As you read data from the SAPAribaSourceDataReader, 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 Vendors table:
C#
string connectionString = "API=SupplierDataAPIWithPagination-V4;APIKey=wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU;Environment=SANDBOX;Realm=testRealm;AuthScheme=OAuthClient;InitiateOAuth=GETANDREFRESH;OAuthClientId=testClient;OAuthClientSecret=testClientSecret;"; using (SAPAribaSourceConnection connection = new SAPAribaSourceConnection(connectionString)) { SAPAribaSourceCommand cmd = new SAPAribaSourceCommand("SELECT * FROM Vendors", connection); SAPAribaSourceDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["SMVendorID"], rdr["Category"])); } }
VB.NET
Dim connectionString As String = "API=SupplierDataAPIWithPagination-V4;APIKey=wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU;Environment=SANDBOX;Realm=testRealm;AuthScheme=OAuthClient;InitiateOAuth=GETANDREFRESH;OAuthClientId=testClient;OAuthClientSecret=testClientSecret;" Using connection As New SAPAribaSourceConnection(connectionString) Dim cmd As New SAPAribaSourceCommand("SELECT * FROM Vendors", connection) Dim rdr As SAPAribaSourceDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("SMVendorID"), rdr("Category"))) End While End Using