Bind Columns to Field Objects When Looping Through Records

Bind Columns to Field Objects When Looping Through Records

Here is a simple way to improve performance with respect to recordset traversal of your MDAC (Microsoft Data Access Components) application. If you want to traverse the recordset then you should obtain references to the field objects at the beginning and then simply use those references when looping through the records. If you don’t take the reference and use fields then it incurs the overhead of looking up the fields in the Recordset::Fields collection for each record in the recordset. For a large recordset, this task can get quite expensive. This sample VB code shows both approaches:

 Sub TraverseRecordset()Dim objRecordset As New RecordsetDim objField0, objField1, objField2objRecordset.ActiveConnection = "DSN=MyDSN;User Id=sa;Password=;"objRecordset.Source = "Select Column1, Column2, Column3 From MyTable"objRecordset.Open' Take the references to the field objectsSet objField0 = objRecordset.Fields(0)Set objField1 = objRecordset.Fields(1)Set objField2 = objRecordset.Fields(2)Do While Not objRecordset.EOF' Good approach - Columns are bound to field objects in the following lineDebug.Print objField0.Value, objField1.Value, objField2.Value ' Bad approach - Columns are not bound to field objects in the following lineDebug.Print objRecordset("Column1"), objRecordset("Column2"), objRecordset("Column3") ' Move to the next record in the recordsetobjRecordset.MoveNextLoopEnd Sub
See also  5 Tips for Working With an Onsite Interpreter

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist