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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top