Read record is partial or whole moved ?

A

Albert

I use ADO and OLE DB Provider for Microsoft Jet

When I issue SELECT * FROM A WHERE <condition>, Do my recordset contains
whole matched records at a time Or data provider moves partial of those
records to my recordset and move next partial when rescordset require more ?
What parameters control that moving ?

TIA
 
M

Michel Walsh

Hi,


Depends of the recordset. A snapshot, yes, since you will play with
local data only. A read only forward only, no, since it is almost just a
pointer. A keyset would get the "keys" of all the records that satisfy the
conditions, at that moment, and save that set, locally, to eventually
display only the records within this set of keys, in the future (in addition
to the new ones YOU would add through the recordset)... even if the
condition change (such as WHERE x<10, and x, initially 9, becomes 11). A
dynamic recordset (not supported in Jet) starts like a keyset but would
evaluate the conditions after each change and remove the key from the keyset
if the condition is not satisfied anymore (so, you may not be able to undo
an erroneous modification, unless you used a transaction...).

Once the recordset is "built" (in fact, long before it is totally
built), the first records are fetched from the data on the server, if not
already in a local buffer still marked as valid data.

No parameter are directly (documented) exposed, by Jet, to control the
internal buffering mechanic / fetching of data.



Hoping it may help,
Vanderghast, Access MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top