[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

Support for IRowsetIndex in MSJet

I found that there is a property for MSJet 3.51 which is :
DBPROP_JETOLEDB_3.5_ENABLEIRowsetIndex
I am able to get the IRowsetIndex by setting the DBPROP_JETOLEDB_ROWSET'S
DBPROP_JETOLEDB_3_5_ENABLEIRowsetIndex to true
And I can use Seek for an Indexed Table

but MSJET 4.0 does not have it!
Does it mean Microsoft will not support this interface in future and why?
If MS Jet 4.0 does not support this, how else can I use the Seek functions?

Indexed table is a quick way to search. Why is it not supported?
0
hshliang
Asked:
hshliang
1 Solution
 
paulburnsCommented:
I've never attempted to use IRowsetIndex myself before, but i found this in MSDN which may be relevant...

---------------------------------------

Indexes
While some versions of the 3.5 provider exposed the IRowsetIndex interface, actual OLE DB spec compliance was somewhat lacking. The 3.5 provider did not support setting ranges via IRowsetIndex::SetRange, and the IRowsetIndex::Seek method did not properly implement all seeking options. The final version of the 3.5 code disables this interface because of these limitations. All clients that want to use indexes to seek or set ranges should use the 4.0 code instead of the 3.5 code. The 4.0 provider fully complies with the OLE DB specification in this area.

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).  

SetRange is not currently exposed in ADO.

---------------------------------------
<cut from Microsoft Data Access SDK 2.1 Help>
0
 
hshliangAuthor Commented:
I think you did give me the answer, although slightly disappointing. As I am hoping of writing a wrapper that works like the DAO funtions. (like the opentable, setindex and seek)
With OLEDB, it seems like you have to use SQL like SELECT, ORDER BY etc.
Actually, I have spent a lot of time to master the open connection, open a table( rowset) with a name or a SQL statement then read it with GetValue (Accessors etc) and insert rows. Everything worked well, then I realise that I can not go any further to do seek. These are the main functions I use in my old program with DAO. It looks like if I have to move up, (or down) I will have to rewrite all my tables, recordsets in SQL's and Commands
Anyways thank you for giving me the answer.

HENRY

 
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now