2008-09-25 2 views
1

У меня есть проект прямо сейчас, когда я хочу, чтобы вытащить строки из базы данных Access, которую сторонний продукт использует для хранения своей информации. Вероятно, небольшое количество пользователей ударит эту базу данных одновременно с моим процессом «экспорта», поэтому я немного обеспокоен целостностью данных и одновременным доступом.Ограничения доступа к данным MS Access

Возможно, у меня возникнут проблемы с моим процессом импорта .NET (используя LINQ/ADO.NET /?), Когда он пытается вытащить данные из MDB, в то время как кто-то еще сохраняет строку? Как работает блокировка Access?

+0

Quibble: вероятно, это не база данных Access, а Jet MDB. – 2008-09-26 19:39:17

ответ

3

Не должно быть проблем. Проблемы могут возникать только при одновременных операциях записи. Блокировка из MS Access на основе блокировок файлов в файле ldb. Блокировки выполняются только на страницах, а не на полном файле. Поскольку блокировки находятся в файле ldb, а не в файле mdb, нет проблем с параллельным чтением.

+0

Я согласен. Я несколько раз писал интерфейсы для приложений MS Access, и чтение данных, когда кто-то их использует, обычно не создает проблем с блокировкой. – JosephStyons 2008-09-25 19:19:22

1

Когда вы открываете базу данных, не пытайтесь открывать ее в режиме только для чтения (хотя вы можете подумать, что это имеет смысл). Когда вы первый пользователь, Access открывает файл mdb в режиме только для чтения и не создает ldb, заставляя всех последующих пользователей находиться в режиме только для чтения.

2

В предыдущих работах с Access (назад, когда я использовал 2003 для вещей) единственное, с чем я столкнулся, это то, что иногда чтение блокирует строки чуть выше и ниже текущего чтения. Однако я считаю, что это может быть изолированной проблемой с нашим приложением.

+0

Это связано с блокировками страниц. – 2008-09-25 19:19:47

Смежные вопросы