Создание базы данных Access в 32-битных или 64-битных средах - PullRequest
1 голос
/ 12 мая 2010

Я не верю, что есть решение моей проблемы, но я решил спросить на случай, если я пропустил или неправильно понял какой-то ее аспект:

  1. У меня есть программа на C #, которая создает и пишет в базу данных Access. Более конкретно, библиотека C #, которая будет частью набора приложений.
  2. Эта библиотека не может быть нацелена на 32 или 64 бит, в частности, потому что это означало бы, что все программы в наборе должны были бы быть ориентированы конкретно (не может загрузить dll в 64-битное рабочее пространство, если она построена для 32-битных, или наоборот. мне кажется?).
  3. Я полагаю, что "Компоненты подключения драйвера системы Office 2010" позволяют мне подключаться и писать в базу данных Access (.mdb) из 64-битной среды. Однако одно из других требований заключается в том, чтобы не иметь внешней зависимости от различных распространяемых версий Microsoft Access (в прошлом у нас были проблемы с приложением Access).

Поэтому, что я действительно ищу, так это какой-то независимый от ОС (и 32/64-битный) способ создания и записи в базу данных Access из C #. Существует ли такая вещь, или мои варианты в значительной степени соответствуют описанным выше?

Одна мысль заключалась в том, что мы могли бы извлечь dll, от которых мы зависим, из компонентов подключения, но я вполне уверен, что они нацелены на 32-битную или 64-битную среду, поэтому он потерпит неудачу, когда мы попытаемся запустить не целевая платформа. Или они будут запускаться как программа на C #, нацеленная на «Any», и просто настраиваться в зависимости от среды?

Ответы [ 2 ]

0 голосов
/ 12 мая 2010

На самом деле, если вы пишете приложение - вы можете просто нацелить его на 32 бита и вообще не беспокоиться. При запуске в 64-битной среде - он просто «запустится».

Если вы пишете dll / сборку, на которую будет ссылаться приложение, и вы знаете, что это приложение будет скомпилировано как «Любой процессор» или «64 бит», то вам не повезло этот ответ тебе не поможет, наверное: D

0 голосов
/ 12 мая 2010

В предыдущем приложении, над которым я работал, была необходимость экспортировать данные в базу данных Access. Однако, если Access не был установлен, нет прямого способа «создать» пустую базу данных. Поскольку вы не можете подключиться к базе данных, которая не существует, я создал пустую базу данных, внедрив сам файл в качестве ресурса в приложение. Затем, когда мне нужно было создать новую «базу данных доступа», я прочитал ее в потоковом режиме и выписал пустую структуру базы данных туда, куда ей нужно было идти, с любым именем файла, в котором он нуждался. Поскольку база данных уже была создана в 32-битной среде, у нее не было проблем с последующим подключением к ней ... но это также было до того, как 64-битные машины стали более распространенными.

Надеюсь, это поможет вам как вариант / решение.

...