Querying with the DataReader
The CData ADO.NET Provider for Marketo implements two ADO.NET interfaces you can use to retrieve data from Marketo: MarketoDataAdapter and MarketoDataReader objects. Whereas MarketoDataAdapter objects retrieve a single result set of all the data that matches a query, MarketoDataReader objects fetch data in subset increments as needed.
Using the MarketoDataReader
The MarketoDataReader retrieves data faster than the MarketoDataAdapter because it can retrieve data in pages. As you read data from the MarketoDataReader, 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 Leads table:
C#
string connectionString = "Schema=REST;RESTEndpoint=https://MyMarketoUrl/rest;OAuthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;"; using (MarketoConnection connection = new MarketoConnection(connectionString)) { MarketoCommand cmd = new MarketoCommand("SELECT * FROM Leads", connection); MarketoDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["Email"])); } }
VB.NET
Dim connectionString As String = "Schema=REST;RESTEndpoint=https://MyMarketoUrl/rest;OAuthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;" Using connection As New MarketoConnection(connectionString) Dim cmd As New MarketoCommand("SELECT * FROM Leads", connection) Dim rdr As MarketoDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("Email"))) End While End Using