OpenCurrentDatabase генерирует System.AccessViolationException - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть приложение C # WPF, которое должно автоматизировать создание базы данных Access 2016.

Выполняет следующий код:

try
            {
                var tempDb = new Access.Application();
                tempDb.OpenCurrentDatabase(tempDbPathFile);

В строке для OpenCurrentDatabase возникает следующее исключение:

Произошла исключительная ситуация System.AccessViolationException HResult = 0x80004003
Сообщение = Попытка чтения или записи в защищенную память. Это часто признак того, что другая память повреждена.
Source = Microsoft.Office.Interop.Access StackTrace: в Microsoft.Office.Interop.Access.ApplicationClass.OpenCurrentDatabase (String filepath, Boolean Exclusive, String bstrPassword) в AccessLauncher.WPF.Launcher.ExportFormsAndQueries (String tempDbPathFile, String userDbPathFile)

Я не использую взаимодействие для Access97 - только для Access2016. Единственное взаимодействие, которое приложение должно выполнить с 97, - это скопировать существующую пустую базу данных 97 в локальную папку, а затем заполнить ее, выбрав Sql Server с помощью OleDbCommand.

Я пробовал один и тот же код на нескольких компьютерах, и я получаю ошибку только на компьютерах, на которых установлены Access2016 и Access97. К сожалению, это требование, поскольку приложение должно иметь возможность создавать разные базы данных в обоих форматах - которые впоследствии могут открывать пользователи (в Access97 или Access2016, в зависимости от ситуации) для редактирования.

Есть идеи, как это можно решить?

1 Ответ

0 голосов
/ 01 мая 2018

Access_2013 прекратил поддержку формата файла Access_97. Некоторые люди сообщают, что Access_2016 еще более настойчиво относится к , которому абсолютно нечего делать с файлами Access_97.

Этот вопрос обсуждает проблему более подробно. TL; DR: бизнес-приложение, которому требуется поддержка Access_2016 и Access_97, имеет значение

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

Мой совет: откусите пулю и отойдите от формата файла Access_97.

...