Re: Waiting for a recordset to finish fetching



Are you sure? I got the impression that JET started to deliver rows before the rowset population is complete. SQL Server does this too--it delivers the first rows to ADO.NET (to the provider) when the first buffer is done. These rows are streamed over in the DataReader as they are made available on the server. No, JET is not SQL Server and JET's provider is very different than SqlClient but I would not be surprised if JET started making rows available before the last one was found--at least to the DataReader (which is behind the scenes in ADO classic). If the application tries to update the rows fetched, I have also seen JET open another connection and start making changes.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant, Dad, Grandpa
Microsoft MVP
INETA Speaker
www.betav.com
www.betav.com/blog/billva
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------

"Stephen Howe" <stephenPOINThoweATtns-globalPOINTcom> wrote in message news:%23qFJGQ7zHHA.600@xxxxxxxxxxxxxxxxxxxxxxx
But, yeah, the point is that my theory is that ADO is still working on
building the recordset at the time the find executes.

How? Only if asynchronous.

If it Client-Sided and not asynchronous, it is never true.
Open() will not be returned from early.
Only when the last record is loaded will Open() return.

If it is Server-Sided, Find() does not work well AFAIK.
I am not even sure what it does.
Some day I will make some tests to find out.
Find() could, in theory, only work on the portion of the Recordset loaded in memory.
Remember Server-Sided cursors are very very different from Client-sided.
For Server-Sided cursors, ADO is just a thin layer over what the database provides.

Things like Filter, Sort, Find are designed to worked on client-sided recordsets because all records are available in memory.
For server-sided recordsets you should use the SQL WHERE clause and ORDER BY clause to do filtering, sorting, finding

My guess is you do have Server-sided cursor and are getting unpredicatable results from Find().
Best bet is to change the CursorLocation to Client-sided.
Find() will work correct after that.

Stephen Howe


.



Relevant Pages

  • Re: Calculated field in pass through query
    ... Using the same hardware, with a single user, Jet will be faster than MS SQL ... Server simply because Jet does not use log. ... Even within MS SQL Server, ... same query on the same data but on another MSSQL db, ...
    (microsoft.public.access.queries)
  • Re: Switching a Forms Recordsource at RunTime to a SP w/ a Parameter
    ... > If you join Jet tables to SQL Server tables, Jet has no option but to drag ...
    (microsoft.public.access.adp.sqlserver)
  • RE: SBS 2003 Unable to connect to database STS_Config
    ... Uninstall the SQL server from the SBS 2k3 server from add/remove programs ... Uninstall Microsoft SQL Server Desktop Engine (SHAREPOINT) ... If AV software install any extra IIS virtual directory, ...
    (microsoft.public.windows.server.sbs)
  • RE: migrating from wmsde to sql server
    ... Click Start, point to All Programs\Microsoft SQL Server, and then click ... then click New SQL Server Registration. ... Microsoft CSS Online Newsgroup Support ... This newsgroup only focuses on SBS technical issues. ...
    (microsoft.public.windows.server.sbs)
  • RE: SBS 2003 Unable to connect to database STS_Config
    ... Uninstall the SQL server from the SBS 2k3 server from add/remove programs ... Uninstall Microsoft SQL Server Desktop Engine (SHAREPOINT) ... If AV software install any extra IIS virtual directory, ...
    (microsoft.public.windows.server.sbs)