Quale database incorporato con supporto per lo storage isolato puoi consigliare?
-
01-07-2019 - |
Domanda
Sto cercando un motore di database incorporato che supporti isolating stoccaggio. Attualmente sono a conoscenza di VistaDB. Cos'altro puoi consigliare?
I requisiti sono piuttosto semplici:
- distribuzione xcopy
- supporto per archiviazione isolata
- preferibilmente gratuito
Nota che non conosci il percorso esatto del file quando usi IS.
Soluzione
VistaDB sembra avere supporto per archiviazione isolata. Lo uso da quasi un anno ormai e ne sono molto contento.
Non è gratuito ma il suo prezzo inizia da $ 60USD per la versione 4 (molto presto per essere rilasciato). Esiste un Express Edition gratuito, ma solo per progetti non commerciali.
Altri suggerimenti
A seguito di Lloyd's risposta, esiste una libreria wrapper per sqlite chiamata uSqlite che dovrebbe raggiungere ciò che cerchi, direttamente o con una minima modifica.
Per elaborare (per la domanda di follow-up di Aku) vorrei suggerire di modificare la routine uSQLstPoll ()
(contenuta in uSQLst.c).
A questo punto hai le informazioni sulla porta e sull'indirizzo dal client che ti connette (contenuto nel sockaddr). Sulla base di tali informazioni è possibile modificare la struttura uSQLst
, per modificare il nome file del file di database locale a cui ci si sta connettendo.
Dichiarazione di non responsabilità: si noti che questa è una possibile soluzione basata su poche indagini. Si consiglia un'indagine più approfondita prima della distribuzione.
Sqlite è pensato per essere incorporato ed è gratuito.
Non supporta direttamente l'archiviazione isolata, tuttavia sembra che sarebbe abbastanza semplice invocare l'API di archiviazione isolata e passare il nome del file generato a Sqlite come nome da utilizzare.
So che questa domanda è piuttosto vecchia, ma VistaDB supporta l'archiviazione isolata ed è implementabile XCopy. Non abbiamo una versione gratuita, è un prodotto commerciale.
Dai un'occhiata al post SO su Vantaggi di VistaDB per ulteriori informazioni informazioni su altre cose che supportiamo.
Il supporto per l'archiviazione isolata è molto più che semplicemente non conoscere il tuo nome file. Devi lavorare con i flussi, NON devi richiedere il blocco a livello di file, non puoi creare file temporanei nello stesso percorso, devi capire UAC e le limitazioni di spazio.
AFAIK VistaDB è l'unico database sql incorporato a supportare lo storage isolato.
Potresti fare qualcosa del genere con Firebird Embedded .
Sebbene non supporti nativamente lo storage isolato, dovrebbe essere abbastanza facile creare un nuovo database per ciascun utente.