64-битная альтернатива для Microsoft Jet - PullRequest
3 голосов
/ 23 сентября 2008

Microsoft решила не выпускать 64-разрядную версию Jet, драйвер их базы данных для Access. Кто-нибудь знает хорошую альтернативу?

Вот особые функции, которые поддерживает Jet, которые мне нужны:

  • Несколько пользователей могут подключаться к базе данных по сети.
  • Пользователи могут использовать проводник Windows для копирования базы данных, когда она открыта, без риска повреждения. В настоящее время Access делает это с достаточной надежностью для удовлетворения потребностей моих клиентов.
  • Хорошо работает в C ++, не требуя .Net.

Альтернативы, которые я считал, что я не думаю, что они могут работать (хотя моё понимание может быть неправильным):

  • SQLite: если несколько пользователей подключатся к базе данных по сети, она будет повреждена.
  • Firebird: копирование используемой базы данных может повредить исходную базу данных.
  • SQL Server: используемые файлы заблокированы и не могут быть скопированы.
  • VistaDB: Похоже, что он специфичен для .Net.
  • Компиляция в 32-битной среде и использование WOW64: есть еще одна зависимость, которая требует от нас компиляции в 64-битной среде, даже если мы не используем 64-битную функциональность.

Ответы [ 7 ]

12 голосов
/ 16 июня 2010

К счастью, за последние два года все изменилось:

Поскольку Office 2010 доступен в 64-разрядной версии, Microsoft пришлось создать 64-разрядную версию своего Jet Engine. Согласно блогу службы поддержки клиентов Microsoft , Microsoft Access Database Engine 2010 распространяемый содержит 64-разрядный драйвер, который может получать доступ к последним версиям формата базы данных Microsoft Access.

2 голосов
/ 23 сентября 2008
  • Пользователи могут копировать базу данных, пока она открыта, без риска повреждения.

Вы не можете сделать это с любым файлом базы данных с несколькими пользователями и / или процессами, модифицирующими его.

1 голос
/ 24 сентября 2008

Я собираюсь создать отдельный 32-разрядный исполняемый файл, который подключается к Jet, с которым мое 64-разрядное приложение может обмениваться данными через COM.

Это удовлетворяет моему общему требованию "работать как Jet", потому что это Jet. Мои клиенты не получают преимущества 64-битной, но другие требования более важны.

1 голос
/ 23 сентября 2008

Другой альтернативой, которую вы можете посмотреть, является SQL Server Compact Edition (CE). Я считаю, что это имеет 64-битные двоичные файлы.

Я также согласен с Орионом и Кевом относительно копирования базы данных.

1 голос
/ 23 сентября 2008

@ Орион: Согласен, OP рекомендуется использовать SQL 2005 Express (если это возможно). Прерыватель сделки может копировать БД, когда он используется / подключен, что невозможно с SQL без использования какого-либо инструмента резервного копирования, который может копировать файлы «в процессе эксплуатации».

Другим способом было бы автоматизировать резервное копирование и восстановление на роуминге, но это далеко от возможности просто получить копию файла.

1 голос
/ 23 сентября 2008

Попробуйте взглянуть на http://www.vistadb.net/

1 голос
/ 23 сентября 2008

Что вам нужно, так это SQL Server Express с переносимыми файлами .mdf. Чтобы обойти ограничение копирования, необходимо убедиться, что рассматриваемое программное обеспечение не поддерживает соединения открытыми (т. Е. Создает отключенный слой доступа к данным).

...