MS Access — C ++ приложения MDB в ProgramData копирует в папку AppData пользователя, когда я этого не хочу

У меня есть программа C ++, которая подключается к базе данных Access через соединение системы DSN OBDC. Этот DSN — это путь к MDB в папке ProgramData. Когда пользователь A запускает приложение, он копирует этот файл MDB в свою папку AppData \ Local и любые обновления в MDB, которые делает приложение, он делает в тот же файл в своей папке AppData. Это не хорошо, потому что если пользователь B запускает приложение, я хочу, чтобы они увидели изменения, которые пользователь A внес в MDB.

1) Есть ли способ заставить его НЕ копировать MDB в свою папку AppData, а вместо этого просто использовать тот, который находится в ProgramData?

2) Я делаю это правильно? Должен ли я поместить MDB в другое место, отличное от ProgramData, где оно будет правильно предоставлено?

3) Нужно ли, чтобы мое приложение при запуске сравнивало временные метки для MDB? При запуске я мог получить его из ProgramData, а когда он закроется, я мог бы записать его обратно в ProgramData? Это похоже на взлом, и я даже не знаю, будут ли проблемы с разрешениями

-1

Решение

Использовать (подпапку) общей папки, %Public% который направляет к C: \ Users \ Public.

0

Другие решения

Этот пост имеет отношение к комментарию ОП и предыдущему ответу Густава:

Используйте (подпапку) общей папки% Public%, которая указывает на C: \ Users \ Public.

Я не эксперт по установке Inno, но я не думаю, что существует предопределенная константа для «C: \ Users \ Public». Но если вам нужна только константа, вы всегда можете это сделать.

Создать константу, используя #define макрос в самом верху вашего скрипта, такой как этот.

#define sf "C:\Users\Public"

И вы можете использовать его в своем сценарии, где вы хотите. Пример:

[Files]
Source: "app.exe"; DestDir: "{#sf}\MyApp\";
0

По вопросам рекламы [email protected]