Querying with the DataReader
The CData ADO.NET Provider for Reckon Accounts Hosted implements two ADO.NET interfaces you can use to retrieve data from Reckon Accounts Hosted: ReckonAccountsHostedDataAdapter and ReckonAccountsHostedDataReader objects. Whereas ReckonAccountsHostedDataAdapter objects retrieve a single result set of all the data that matches a query, ReckonAccountsHostedDataReader objects fetch data in subset increments as needed.
Using the ReckonAccountsHostedDataReader
The ReckonAccountsHostedDataReader retrieves data faster than the ReckonAccountsHostedDataAdapter because it can retrieve data in pages. As you read data from the ReckonAccountsHostedDataReader, 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 Customers table:
C#
string connectionString = "SubscriptionKey=test;CountryVersion=2021.R2.AU;CompanyFile=Q:/CData Software.QBW;User=test;Password=test;InitiateOAuth=GETANDREFRESH;CallbackURL=http://localhost:33333;OAuthClientId=MyOAuthClientID;OAuthClientSecret=MyOAuthClientSecret;"; using (ReckonAccountsHostedConnection connection = new ReckonAccountsHostedConnection(connectionString)) { ReckonAccountsHostedCommand cmd = new ReckonAccountsHostedCommand("SELECT * FROM Customers", connection); ReckonAccountsHostedDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["Name"])); } }
VB.NET
Dim connectionString As String = "SubscriptionKey=test;CountryVersion=2021.R2.AU;CompanyFile=Q:/CData Software.QBW;User=test;Password=test;InitiateOAuth=GETANDREFRESH;CallbackURL=http://localhost:33333;OAuthClientId=MyOAuthClientID;OAuthClientSecret=MyOAuthClientSecret;" Using connection As New ReckonAccountsHostedConnection(connectionString) Dim cmd As New ReckonAccountsHostedCommand("SELECT * FROM Customers", connection) Dim rdr As ReckonAccountsHostedDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("Name"))) End While End Using