#database #vb.net #windows-8.1
#База данных #vb.net #windows-8.1
Вопрос:
Поэтому сегодня я пытаюсь, прежде всего, создать mdb-файл с VB.NET (2012) и DAO. Пожалуйста, смотрите следующее:
Dim myEngine As New DAO.DBEngine
Sub CreateMDBFile()
myEngine.CreateDatabase("C:WindowsTest.mdb", ";LANGID=0x0409;CP=1252;COUNTRY=0", 64)
End Sub
Кажется, это отлично работает. Код выполняется, и у меня есть другие подпрограммы, которые создают и заполняют таблицы. Я могу извлекать данные из наборов записей, целых 9 ярдов. Есть только одна странная проблема:
Когда я открываю Проводник, я не могу найти mdb-файл. Его там нет. Я имею в виду, что моя программа может найти его, открыть, заполнить и запросить, но что касается Проводника Windows, то там ничего нет.
Это ошибка Win 8? Почему мой mdb-файл не отображается в проводнике Windows?
Заранее спасибо,
Джейсон
Комментарии:
1. Вы уверены, что ваш проводник настроен на просмотр скрытых файлов?
2. Это действительно плохой каталог для размещения вашей базы данных. Вместо этого вы должны выбрать
Environment.GetFolderPath(...)
.3. И, вероятно, возможность создать файл в этом каталоге означает, что вы снизили все меры защиты, предоставляемые операционной системой. Очень плохо для вашей безопасности
4. Забавно, насколько я согласен со всеми остальными в этом, я придерживаюсь требований моего клиента. И из-за его требований я получаю -1 голос. Несправедливо:-P
Ответ №1:
Когда приложение, не «запускаемое от имени администратора» (UAC), пытается выполнить запись в системную папку (включая подкаталоги Program Files), Windows больше не возвращает ошибку. Вместо этого файл сохраняется внутри %LOCALAPPDATA%VirtualStore
. Это поведение началось в Windows Vista.
СОВЕТ: Не сохраняйте пользовательские файлы в системные папки.
Комментарии:
1. Спасибо за это. Теперь, похоже, мне нужно начинать новую тему о том, как запускать эту маленькую программу от имени администратора каждый раз, без запроса. Спецификации для этого проекта — ужасная боль…