Как правильно удалить все подключения к базе данных Access - PullRequest
1 голос
/ 01 декабря 2009

Вот фрагмент кода VB6:

myProjectDaoDB.Close
FileCopy myName, TempFile

где myName - это путь к базе данных. Эта база данных предположительно закрыта в первой строке. Кажется, что простого закрытия базы данных недостаточно для того, чтобы должным образом удалить весь доступ к базе данных, поскольку при запуске программы я получаю ошибку времени выполнения «70»: разрешение отклонено. Я знаю, что нет реальных проблем с разрешениями пользователей. Эта ошибка возникает только после сохранения в базе данных, поэтому я уверен, что что-то не закрывается должным образом.

Когда база данных открыта, создается файл блокировки. Если я запускаю этот код без внесения каких-либо изменений в базу данных, файл блокировки удаляется после выполнения первой строки. Когда я делаю изменения в базе данных, файл блокировки не удаляется. Нет ошибок при попытке закрыть базу данных, так почему она все еще там?

Обновление: я выполнил шаги здесь , чтобы выяснить, кто имеет связь с базой данных во время ошибки. Согласно результатам, когда я пытаюсь закрыть соединение без внесения изменений в базу данных, это только мое соединение. Когда я делаю изменения, я подключаюсь дважды . Тогда кажется, что myProjectDaoDB.Close не закрывает все соединения. Что дает?

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Вы закрыли все наборы записей и установили для них значение Nothing?

0 голосов
/ 01 декабря 2009

Возможно, стоит попробовать DBEngine.Idle dbRefreshCache

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