Разница между Microsoft.Jet.OleDb и Microsoft.Ace.OleDb

Прошло много лет с тех пор, как я начал программировать с помощью классического ASP и Microsoft Access, где мы использовали драйвер Microsoft.Jet.Oledb для доступа и отображения данных.

Мне было предложено выполнить некоторую работу с доступом к данным MS Excel с помощью "Microsoft.Ace.Oledb" . Я обнаружил, что это часть загрузки "Microsoft Access 2010 Engine Redistributable".

Я хотел бы знать, заменил ли "Microsoft.Jet.OleDb" драйвер "Microsoft.Ace.Oledb" и по сути тот же или они совсем разные?

Кроме того, вы обычно получаете драйвер "Microsoft.Ace.Oledb" при покупке MS Access 2010?

Ответы

Ответ 1

В основном это вопрос истории, фактически ACE перешел в JET:

Википедия подробно отвечает на ваш вопрос.

Наиболее релевантные разделы:

С версией 2007 года Access включает в себя версию для Office Jet, первоначально называемый механизмом подключения к Office Access (ACE), но который теперь называется механизмом доступа к базе данных. Этот движок полностью обратно совместим с предыдущими версиями двигателя Jet, поэтому он читает и записывает (.mdb) файлы из более ранних версий Access. Это вводит новый формат файла по умолчанию (.accdb), который приносит несколько улучшения доступа, включая сложные типы данных, такие как многозначные поля, тип данных вложения и отслеживание истории в заметки. Это также улучшает безопасность и шифрование обеспечивает интеграцию с Microsoft Windows SharePoint Services 3.0 и Microsoft Office Outlook 2007

Кроме того, ACE предоставляет 64-битный драйвер, поэтому его можно использовать на 64-разрядных машинах, тогда как JET не может.

Драйвер не входит в операционную систему Windows, но доступный как распространяемый. [11] Раньше двигатель базы данных Jet был только 32-битным и не запускался изначально под 64-разрядными версиями Windows.

Что касается второй части вашего вопроса, я недавно установил Office 2010, и мне пришлось загружать компоненты ACE отдельно. Я получил их из ссылки Microsoft Access Database Engine 2010 Redistributable. Вероятно, это связано с тем, что я установил 32-разрядную версию Office под 64-разрядную Windows; в любом случае необходимые файлы легко получить от Microsoft.

Ответ 2

Драйверы, по сути, одинаковы при использовании для основных операций и показывают заметную разницу с более сложными элементами (союзы, вложенные запросы и т.д.).

Основываясь на личном опыте, ACE не обеспечивает полностью обратные совместимые результаты. Он может открывать и читать/записывать предыдущий формат .mdb, но есть изменения в типе данных при выполнении точно таких же запросов.

Например, при использовании UNION в полях TEXT, где JET используется для возврата результата TEXT (255), ACE возвращает MEMO?!

Это может вызвать множество проблем в сочетании с BI или средствами отчетности, такими как Crystal Reports.