c# - Multi column index search Microsoft.Isam.Esent -


i facing following issue: have composite index on database index1 {binarycolumn1, binarycolumn2}. using following set index use:

api.jetsetcurrentindex(_session, _table, index1); 

to create key:

api.makekey(_session, _table, binaryvalue, makekeygrbit.newkey); 

and try perform search with:

api.tryseek(_session, _table, seekgrbit.seekeq); 

this works , seek returns true correctly if index1 1 column. if have multiple columns , try search value single column (ex. binarycolumn1 = {0x01, 0x23}) returns false.

how can search 1 value? (ps. cannot change index nor create new ones.) possible?

thank you

what did work {0x01, 0x00}. can't single call, because value of second column mixing seekeq grbit.

you seekge, you'll need retrieve column make sure value correct (and not {0x22, 0x23}). you'll have like: setcurrentindex() makekey( ..., binaryvalue1, makekeygrbit.newkey | makekeygrbit.fullcolumnstartlimit); // appends rest of search buffer 0x00's. seek(ge); makekey(... binaryvalue1, makekeygrbit.newkey | makekeygrbit.fullcolumnendlimit); // appends rest of search buffer 0xff's. api.jetsetindexrange(); can use api.trymovenext() iterate through rows have column equal binaryvalue1.

also @ test code included project -- howdoi.cs file has lots of examples.

sorry pseudo-code; don't have source code handy @ moment.

-martin


Comments

Popular posts from this blog

asynchronous - C# WinSCP .NET assembly: How to upload multiple files asynchronously -

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -