Domanda

La mia applicazione attualmente utilizza Microsoft Access, ma ora potrebbe essere ospitata su scatole Linux. Inoltre, durante l'accesso da più computer, uno di questi potrebbe aggiornare i record (quando viene letto da altri utenti).

Richiedo anche che il database incorporato supporti le query SQL complesse, come SQL interno, Join, ecc.

Ho provato SQLite , ma molte delle query esistenti falliscono o devono essere riparate ( come in una semplice query che utilizza join interno tra parentesi dopo DA non era accettabile per SQLite e doveva essere rimosso). Anche il join destro non è supportato.

Sono venuto a conoscenza di Apache Derby e H2 , ma prima preferirei la tua preziosa opinione.

Modifica

Ho dimenticato di dire che la mia applicazione è interamente scritta in Java.

Modifica

Per impostazione predefinita utilizzo Microsoft Access mdb, condiviso sull'unità di rete, stabilendo una connessione senza DSN da computer remoti.

Aggiorna

Ho fatto delle prove con Firebird e sembra davvero ottimo, zero admin e conforme a SQL. È veloce e non ho avuto problemi in nessuna delle query tipiche che ho potuto provare. Sono molto soddisfatto e spero di usarlo per il progetto per il quale ho sollevato questa domanda.

Speriamo che anche il server Advantage sia buono, ma non potrei avere il tempo di esaminarlo. Dopo aver esaminato / utilizzato Firebird non sentirai più la necessità di provare qualcos'altro.

È stato utile?

Soluzione

Penso che sia Firebird .

Anche Cte's sono supportati in Firebird 2.1!

Firebird funziona su Windows, Linux, Mac OS ...

Jaybird driver per Java.

Esistono alcuni buoni strumenti di migrazione da Accesso a Firebird:

Altri suggerimenti

Darei un'occhiata al Advantage Database Server (sybase.com). Funziona su Windows, Linux e NetWare . Abbiamo un'applicazione di contabilità commerciale / project management per l'edilizia e siamo passati a Advantage 6 o 7 anni fa. Siamo rimasti estremamente soddisfatti delle prestazioni e del supporto. Anche i clienti sono molto contenti.

Puoi trovare una descrizione abbastanza dettagliata della conformità agli standard SQL di Derby qui: http: // wiki .apache.org / db-derby / SQLvsDerbyFeatures

Anche la nostra azienda utilizza Advantage. Ci siamo arrivati ??da un XBase , ma da allora ho abbracciato la sua natura SQL. Funziona su molte piattaforme (Windows, Linux, NetWare) e ha un sacco di driver (PHP, ADO, JDBC, ODBC, Crystal) in modo che funzioni praticamente in qualsiasi ambiente in cui è possibile programmare.

Questo potrebbe essere utile nella tua ricerca: Confronto di sistemi di gestione di database relazionali .

Personalmente suggerirei di dare un'occhiata seria a Firebird. È multipiattaforma, ha un provider .NET nativo e supporta le join che menzioni.

Firebird è il più " compatibile con SQL " database incorporato. Il motore della versione integrata è lo stesso dell'edizione server.

Prestare attenzione al fatto che con Firebird incorporato solo un client alla volta può connettersi al database, quindi è possibile estendere più connessioni dallo stesso processo ma non connettersi da processi diversi. Questo problema è stato risolto in Firebird 2.5 e versioni successive.

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