Diferencia entre Microsoft.Jet.OleDb y Microsoft.Ace.OleDb

Han pasado muchos años desde que realicé algo de progtwigción con Classic ASP y Microsoft Access, donde utilizamos el controlador “Microsoft.Jet.Oledb” para acceder y visualizar los datos.

Se me ha pedido que trabaje para acceder a datos de MS Excel usando “Microsoft.Ace.Oledb”. He encontrado que esto es parte de la descarga “Microsoft Access 2010 Engine Redistributable”.

Me gustaría saber si “Microsoft.Jet.OleDb” ha reemplazado al controlador “Microsoft.Ace.Oledb” y son esencialmente iguales o ¿son completamente diferentes?

Además, ¿normalmente obtiene el controlador “Microsoft.Ace.Oledb” cuando compra MS Access 2010?

Es principalmente una cuestión de historia, efectivamente ACE ha reemplazado a JET:

Wikipedia responde su pregunta con gran detalle.

Las secciones más relevantes son:

Con la versión 2007 en adelante, Access incluye una versión específica de Office de Jet, inicialmente llamada Office Access Connectivity Engine (ACE), pero que ahora se llama Motor de base de datos de Access. Este motor es totalmente compatible con versiones anteriores del motor Jet, por lo que lee y escribe archivos (mdb) de versiones anteriores de Access. Introduce un nuevo formato de archivo predeterminado, (.accdb), que aporta varias mejoras a Access, incluidos tipos de datos complejos como campos de valores múltiples, el tipo de datos adjuntos y el seguimiento del historial en los campos memo. También trae mejoras de seguridad y encriptación y permite la integración con Microsoft Windows SharePoint Services 3.0 y Microsoft Office Outlook 2007

Además, ACE proporciona un controlador de 64 bits, por lo que puede usarse en máquinas de 64 bits, mientras que JET no puede.

El controlador no es parte del sistema operativo Windows, pero está disponible como redistribuible. [11] Anteriormente, el Motor de base de datos Jet era solo de 32 bits y no se ejecutaba de forma nativa en versiones de Windows de 64 bits.

En cuanto a la segunda parte de su pregunta, recientemente instalé Office 2010 y tuve que descargar los componentes de ACE por separado. Los obtuve del enlace redistribuible de Microsoft Access Database Engine 2010 . Esto es probable porque había instalado una versión de 32 bits de Office en Windows de 64 bits; en cualquier caso, los archivos necesarios son fáciles de obtener de Microsoft.

Los controladores son esencialmente los mismos cuando se usan para operaciones básicas, y muestran una diferencia notable con cosas más complejas (uniones, consultas anidadas, etc.).

En función de su experiencia personal, ACE no ofrece resultados totalmente compatibles con versiones anteriores. Se puede abrir y leer / escribir el formato .mdb anterior, pero hay cambios en la conversión del tipo de datos de exactamente las mismas consultas.

Por ejemplo, cuando se usa UNION en campos TEXT, donde JET solía devolver el resultado TEXTO (255), ACE devuelve MEMO?!

Esto puede generar muchos problemas en combinación con BI o herramientas de informes como Crystal Reports.