ADORecordSet

We've been doing some simple benchmarks to determine wether to use
ClientDatasets, ADORecordsets or our own thin wrapper over Microsoft's ADO
objects.

So far we've tested just the two ADO methods.  Both take roughtly the same
time to get data from the server (290,000+ records with a cross join of 4 or
5 tables).  This takes about 20-30 seconds in each case.  The amazing part
is when we timed the process of going from the first record, then going to
the next record until we hit the end of the recordset.  Borland's
implementation takes around 3 to 5 minutes for every 20,000 records.  Our
thin wrapper takes around 2 or 3 seconds to go through the entire 290,000
records.

So my question is, what the heck is Borlands implementation doing?!