Ограничения доступа к данным MS Access - PullRequest
1 голос
/ 25 сентября 2008

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

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

Ответы [ 3 ]

3 голосов
/ 25 сентября 2008

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

2 голосов
/ 25 сентября 2008

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

1 голос
/ 25 сентября 2008

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

...