Querying with the DataReader
The CData ADO.NET Provider for IBM Cloud Object Storage implements two ADO.NET interfaces you can use to retrieve data from IBM Cloud Object Storage: IBMCloudObjectStorageDataAdapter and IBMCloudObjectStorageDataReader objects. Whereas IBMCloudObjectStorageDataAdapter objects retrieve a single result set of all the data that matches a query, IBMCloudObjectStorageDataReader objects fetch data in subset increments as needed.
Using the IBMCloudObjectStorageDataReader
The IBMCloudObjectStorageDataReader retrieves data faster than the IBMCloudObjectStorageDataAdapter because it can retrieve data in pages. As you read data from the IBMCloudObjectStorageDataReader, 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 Objects table:
C#
string connectionString = "ApiKey=myApiKey;CloudObjectStorageCRN=MyInstanceCRN;Region=myRegion;OAuthClientId=MyOAuthClientId;OAuthClientSecret=myOAuthClientSecret;"; using (IBMCloudObjectStorageConnection connection = new IBMCloudObjectStorageConnection(connectionString)) { IBMCloudObjectStorageCommand cmd = new IBMCloudObjectStorageCommand("SELECT * FROM Objects", connection); IBMCloudObjectStorageDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Key"], rdr["Etag"])); } }
VB.NET
Dim connectionString As String = "ApiKey=myApiKey;CloudObjectStorageCRN=MyInstanceCRN;Region=myRegion;OAuthClientId=MyOAuthClientId;OAuthClientSecret=myOAuthClientSecret;" Using connection As New IBMCloudObjectStorageConnection(connectionString) Dim cmd As New IBMCloudObjectStorageCommand("SELECT * FROM Objects", connection) Dim rdr As IBMCloudObjectStorageDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Key"), rdr("Etag"))) End While End Using