Re: Index and Deleted
From: Stephen Howe (stephenPOINThoweATtns-globalPOINTcom)
Date: 01/25/05
- Next message: Andy Willis: "Re: Jet OLEDB: Database Locking Mode"
- Previous message: Marc Doolittle: "Re: Jet OLEDB: Database Locking Mode"
- In reply to: Anders Eriksson: "Re: Index and Deleted"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 25 Jan 2005 14:47:12 -0000
> I fail to see the logic in that ADO will get slower because of deleted
> records. Doesn't it use the indexes to get the records?
I am sure it does. IIRC, back in the days of dbase II (and yes I go that far
back, even pre- MSDOS), a record carried a hidden byte which if it contained
'*' it indicated it was deleted. I am sure the meta-info on the table
indicates that there are deleted records present.
But I think that FIXNR is indexed but not the column where '*' resides.
But this is guesswork
But where does this get you?
I have done some poking around and these are my thoughts
(i) The Jet 4.0 Provider is remarkably undocumented when it comes to DBase
files (and others). If you want to use it, I would be dumping the Connection
Properties, before and after a successful connection, comparing and seeing
what has changed and whether there is a dynamic property that can be set
that makes the difference. Also see
http://msdn.microsoft.com/library/en-us/oledb/htm/oledbprovjet_overview.asp
Also this comment on Indexs for Jet 4.0 Provider might explain what is going
on:
>>
Although the 4.0 provider supports the Seek and SetRange interfaces, it does
not support these methods on file formats other than the 4.0 .mdb file
format. To accommodate the OLE DB specification, significant changes and
additions had to be made and it was not possible to make these changes to
the other Installable ISAMs that Jet uses to access other storage formats,
including the IISAMs that access previous formats of .mdb files (which
includes those used in Microsoft Access 97).
>>
But I think that even if significant energy was expended on this, my
educated guess would be that you would hit a brick wall. In short, using the
Jet 4.0 provider is a dead end due to its limitations.
(ii) There was a Microsoft native dbase Provider, but hey, it could not be
used to update the database (by design). That is laughable.
(iii) You best bet is to switch to the FoxPro provider. Since FoxPro is the
native provider for dBASE files you are likely to get better results.
The FoxPro Provider can be downloaded here:
http://www.microsoft.com/downloads/details.aspx?FamilyId=0F43EB58-7A94-4AE1-A59E-965869CB3BC9&displaylang=en
Connection Strings here:
http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm#OLEDBProviderForVisualFoxPro
Stephen Howe
- Next message: Andy Willis: "Re: Jet OLEDB: Database Locking Mode"
- Previous message: Marc Doolittle: "Re: Jet OLEDB: Database Locking Mode"
- In reply to: Anders Eriksson: "Re: Index and Deleted"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|