Pregunta

Mi aplicación actualmente usa Microsoft Access, pero ahora puede estar alojada en cajas de Linux. Además, mientras se accede desde varias computadoras, una de ellas puede actualizar los registros (cuando otros usuarios la leen).

También requiero que la base de datos integrada admita consultas SQL complejas, como SQL interno, Uniones, etc.

Intenté SQLite , pero muchas de las consultas existentes fallan o necesitan ser reparadas ( como en una consulta simple usando unir los corchetes internos después de FROM no era aceptable para SQLite, y tuvo que ser eliminado). La unión derecha tampoco es compatible.

Conocí Apache Derby y H2 , pero primero preferiría su valiosa opinión.

Edición :

Olvidé mencionar que mi aplicación está completamente escrita en Java.

Edición :

En la configuración predeterminada, uso Microsoft Access mdb, compartido en la unidad de red, haciendo una conexión sin DSN desde computadoras remotas.

Update

Hice pruebas con Firebird, y realmente parece muy bueno, cero administrador y compatible con SQL. Es rápido, y no tuve problemas en ninguna de las consultas típicas que podría probar. Estoy muy satisfecho con él y espero que lo use para el proyecto para el que planteé esta pregunta.

Esperemos que Advantage Server también sea bueno, pero no pudo obtener tiempo para revisarlo. Después de revisar / usar Firebird, no siente la necesidad de probar nada más.

¿Fue útil?

Solución

Creo que es Firebird .

¡Incluso Cte's son compatibles con Firebird 2.1!

Firebird funciona en Windows, Linux, Mac OS ...

Jaybird driver para Java.

Hay algunas buenas herramientas de migración de Access to Firebird:

Otros consejos

Echaría un vistazo al servidor de base de datos Advantage (sybase.com). Se ejecuta en Windows, Linux y NetWare . Tenemos una aplicación de contabilidad comercial / gestión de proyectos para la industria de la construcción y cambiamos a Advantage hace 6 o 7 años. Estamos muy satisfechos con el rendimiento y el apoyo. Los clientes también están muy contentos.

Puede encontrar una descripción bastante detallada del cumplimiento de los estándares SQL de Derby aquí: http: // wiki .apache.org / db-derby / SQLvsDerbyFeatures

Nuestra empresa también está utilizando Advantage. Llegamos a él desde un XBase , pero desde entonces hemos adoptado su naturaleza SQL. Se ejecuta en muchas plataformas (Windows, Linux, NetWare) y tiene un montón de controladores (PHP, ADO, JDBC, ODBC, Crystal) para que funcione en casi cualquier entorno en el que pueda programar.

Esto podría ser útil en su investigación: Comparación de sistemas de gestión de bases de datos relacionales .

Yo personalmente sugeriría echar un vistazo serio a Firebird. Es multiplataforma, tiene un proveedor .NET nativo y admite las uniones que mencionas.

Firebird es el más "compatible" con SQL " Base de datos incrustada. El motor de la versión incrustada es el mismo que el del servidor.

Tenga en cuenta que con Firebird incrustado, solo un cliente a la vez puede conectarse a la base de datos, por lo que puede abarcar varias conexiones desde el mismo proceso pero no conectarse desde diferentes procesos. Este problema se soluciona en Firebird 2.5 y versiones posteriores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top