Изменения в БД Access не сохраняются с момента обновления до Windows 7 - PullRequest
2 голосов
/ 10 мая 2010

Я работаю с программой, которая обращается к БД MS-Access. Проблема в том, что если я открываю файл БД с помощью Access, то значения, которые я вижу, не являются значениями, которые я вижу, когда использую программу. Например, есть таблица PARAMS с различными программными переменными, одной из которых является дата, когда я последний раз загружал определенный файл. В доступе он читает 12 апреля 2010 года, а в программе - 7 мая 2010 года (это правильно).

12 апреля - время обновления компьютера до Windows 7. Кроме того, файл mdb находится рядом с исполняемым файлом программы в C: \ Program Files (x86); и я знаю, что Win7 не позволяет программам записывать в программные файлы dir. Итак, где сохраняются изменения?

Что я пробовал: Я попытался открыть файл MDB на другом компьютере - все еще читает неправильные (старые) значения Я попытался скопировать весь каталог программы в другую папку - теперь и программа, и ms-access читают неправильные значения.

Может кто-нибудь подсказать, как получить версию БД со всеми значениями, актуальными для программы?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 10 мая 2010

Вы помещаете базу данных в папку приложения? Если это так, вы, вероятно, испытываете виртуализацию UAC (перенаправление данных AKA).

"Например, если приложение пытается выполнить запись в C: \ Program Files \ Contoso \ Settings.ini, а у пользователя нет прав на запись в этот каталог (Program Files), операция записи будет перенаправлена в C: \ Users \ Имя пользователя \ AppData \ Local \ VirtualStore \ Program Files \ Contoso \ settings.ini "

База данных должна храниться в папке % APPDATA% .

http://windowsteamblog.com/blogs/developers/archive/2009/08/04/user-account-control-data-redirection.aspx

http://support.microsoft.com/kb/927387

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

Когда вы просматриваете программные файлы в проводнике Windows, найдите кнопку наряду с «Организовать», «Открыть», «Печать», «Записать» и т. Д. С надписью Compatibility Files. В общем, вы попадете в папку виртуализации для папки.

Кроме того, если вы готовы принять приглашение UAC, если вы запустите приложение от имени администратора, оно запишет в папку с файлами программы. Или, если вы перенесете вашу установку куда-то, кроме программных файлов, хотя это может привести к потере защиты от того, что кто-то изменяет exe-файл, она также выполнит запись в каталог приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...