Querying with the DataReader
The CData ADO.NET Provider for Sage 200 implements two ADO.NET interfaces you can use to retrieve data from Sage 200: Sage200DataAdapter and Sage200DataReader objects. Whereas Sage200DataAdapter objects retrieve a single result set of all the data that matches a query, Sage200DataReader objects fetch data in subset increments as needed.
Using the Sage200DataReader
The Sage200DataReader retrieves data faster than the Sage200DataAdapter because it can retrieve data in pages. As you read data from the Sage200DataReader, 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 Banks table:
C#
string connectionString = "InitiateOAuth=GETANDREFRESH;SubscriptionKey=12345;Schema=StandardUK"; using (Sage200Connection connection = new Sage200Connection(connectionString)) { Sage200Command cmd = new Sage200Command("SELECT * FROM Banks", connection); Sage200DataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["Code"])); } }
VB.NET
Dim connectionString As String = "InitiateOAuth=GETANDREFRESH;SubscriptionKey=12345;Schema=StandardUK" Using connection As New Sage200Connection(connectionString) Dim cmd As New Sage200Command("SELECT * FROM Banks", connection) Dim rdr As Sage200DataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("Code"))) End While End Using