database embedded-database isolatedstorage

database - ¿Qué base de datos integrada con soporte de almacenamiento aislado puede recomendar?



embedded-database isolatedstorage (5)

Estoy buscando un motor de base de datos incrustado que soporte el almacenamiento de aislamiento . Actualmente estoy al tanto de VistaDB. ¿Qué más puedes recomendar?

Los requisitos son bastante simples:

  • implementación de xcopy
  • soporte para almacenamiento aislado
  • preferiblemente gratis

Tenga en cuenta que no conoce la ruta exacta al archivo cuando usa IS.


Podría hacer algo así con Firebird Embedded .
Aunque no admite de forma nativa el almacenamiento aislado, debería ser bastante fácil crear una nueva base de datos para cada usuario.


Sqlite está destinado a ser integrado y es gratuito.

No admite directamente el almacenamiento aislado, sin embargo, parece que sería bastante sencillo invocar la API de almacenamiento aislada, y pasar el nombre de archivo generado a Sqlite como el nombre de archivo que debería usar.


VistaDB parece tener soporte para almacenamiento aislado. Lo he estado utilizando durante casi un año y estoy muy contento con todo.

No es gratis, pero su precio comienza en $ 60USD para la versión 4 (muy pronto para ser lanzado). Existe una versión Express gratuita, pero solo para proyectos no comerciales.


Sé que esta pregunta es bastante antigua, pero VistaDB admite el almacenamiento aislado y es XCopy desplegable. Sin embargo, no tenemos una versión gratuita, es un producto comercial.

Eche un vistazo a la publicación SO en Ventajas de VistaDB para obtener más información sobre otras cosas que apoyamos.

El soporte de almacenamiento aislado es mucho más que simplemente no saber su nombre de archivo. Tienes que trabajar con transmisiones, NO debes requerir el bloqueo a nivel de archivo, no puedes crear archivos temporales en la misma ruta, debes entender las limitaciones de espacio y UAC.

AFAIK VistaDB es la única base de datos sql incorporada para admitir almacenamiento aislado.


Siguiendo con la respuesta de Lloyd , hay una biblioteca contenedora para sqlite llamada uSqlite que debe lograr lo que busca , ya sea directamente o con una alteración mínima.

Para elaborar (para la pregunta de seguimiento de Aku) sugeriría modificar la rutina uSQLstPoll() (contenida en uSQLst.c). En esta etapa, usted tiene la información de puerto y dirección del cliente que se conecta a usted (contenida en el sockaddr). Sobre la base de esa información, puede modificar la estructura de uSQLst para modificar el nombre de archivo del archivo de base de datos local al que se está conectando.

Descargo de responsabilidad: Tenga en cuenta que esta es una posible solución basada en poca investigación. Se sugiere una investigación más completa antes de implementar.