Question

I'm looking for embedded database engine supporting isolating storage. Currently I'm aware of VistaDB. What else you can recommend?

Requirements are pretty simple:

  • xcopy deployment
  • support for isolated storage
  • preferably free

Note that you don't know exact path to the file when using IS.

Was it helpful?

Solution

VistaDB seems to have support for isolated storage. I've been using it for nearly a year now and am very happy with it all round.

It's not free but its pricing starts at $60USD for version 4 (very soon to be released). There is a free Express Edition but this is for non-commercial projects only.

OTHER TIPS

Following on from Lloyd's answer, there is a wrapper library for sqlite called uSqlite that should achieve what you're after, either directly or with minimal alteration.


To elaborate (for Aku's followup question) I would suggest modifying the uSQLstPoll() routine (contained in uSQLst.c). At this stage you have the port and address information from the client connecting to you (contained in the sockaddr). On the basis of that information you can modify the uSQLst structure, to modify the filename of the local database file that you're connecting to.

Disclaimer: Note that this is a possible solution based on little investigation. A more thorough investigation is suggested before deploying.

Sqlite is very much meant to be embedded and is free.

It doesn't directly support isolated storage, however it looks like it would be fairly straightforward to invoke the isolated storage API's yourself, and pass the generated filename to Sqlite as the filename it should use.

I know this question is pretty old, but VistaDB DOES support Isolated Storage and is XCopy deployable. We do not have a free version though, it is a commercial product.

Take a look at the SO post on Advantages of VistaDB for more information about other things we support.

Isolated storage support is much more than just not knowing your filename. You have to work with streams, you have to NOT require file level locking, you can't create temp files in the same path, you have to understand UAC and space limitations.

AFAIK VistaDB is the only embedded sql database to support Isolated Storage.

You could do something like that with Firebird Embedded.
Although it does not natively support Isolated Storage, it should be pretty easy to create a new database for each user.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top