Pregunta

Microsoft ha optado por no lanzar una versión de 64 bits de Jet, su controlador de base de datos para Access.¿Alguien conoce una buena alternativa?

Estas son las características específicas que Jet admite y que necesito:

  • Varios usuarios pueden conectarse a la base de datos a través de una red.
  • Los usuarios pueden utilizar el Explorador de Windows para copiar la base de datos mientras está abierta sin riesgo de corrupción.Actualmente, Access hace esto con suficiente confiabilidad para lo que mis clientes necesitan.
  • Funciona bien en C++ sin necesidad de .Net.

Alternativas que he considerado y que no creo que puedan funcionar (aunque mi comprensión podría ser incorrecta):

  • SQLite:Si varios usuarios se conectan a la base de datos a través de una red, se dañará.
  • pájaro de fuego:Copiar una base de datos que está en uso puede dañar la base de datos original.
  • Servidor SQL:Los archivos en uso están bloqueados y no se pueden copiar.
  • VistaDB:Esto parece ser específico de .Net.
  • Compile en 32 bits y use WOW64:Hay otra dependencia que requiere que compilemos en 64 bits, aunque no utilizamos ninguna funcionalidad de 64 bits.
¿Fue útil?

Solución

Por suerte, las cosas han cambiado en los últimos dos años:

Dado que Office 2010 está disponible en una versión de 64 bits, Microsoft tuvo que crear una versión de 64 bits de su Jet Engine.De acuerdo con la Blog de servicio al cliente de Microsoft, el Motor de base de datos de Microsoft Access 2010 redistribuible contiene un controlador de 64 bits, que puede acceder a versiones recientes del formato de base de datos de Microsoft Access.

Otros consejos

  • Los usuarios pueden copiar la base de datos mientras está abierta sin riesgo de corrupción.

No puedes hacer eso con cualquier Archivo de base de datos con múltiples usuarios y/o procesos modificándolo.

Lo que estás buscando es SQL Server Express con los archivos .mdf portátiles.Para evitar la limitación de copia, debe asegurarse de que el software en cuestión no mantenga las conexiones abiertas (es decir,crear una capa de acceso a datos desconectada).

Intenta echarle un vistazo http://www.vistadb.net/

@Orión:De acuerdo, se recomendaría a OP que utilizara SQL 2005 Express (si es posible).El factor decisivo es poder copiar la base de datos mientras está en uso/adjunta, lo cual está fuera de discusión con SQL sin usar algún tipo de herramienta de respaldo que pueda copiar archivos "en uso".

Otra forma sería automatizar una copia de seguridad y restaurar en una máquina itinerante, pero esto está muy lejos de poder simplemente obtener una copia del archivo.

Otra alternativa que puede considerar es SQL Server Compact Edition (CE).Creo que esto tiene binarios de 64 bits.

También estoy de acuerdo con Orion y Kev sobre la copia de la base de datos.

Lo que voy a hacer es crear un ejecutable de 32 bits independiente que se conecte a Jet y con el que mi aplicación de 64 bits pueda comunicarse a través de COM.

Esto satisface mi requisito general de "trabajar como Jet", porque es Jet.Mis clientes no obtienen el beneficio de 64 bits, pero los demás requisitos son más importantes.

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