Ограничения доступа к данным MS Access

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

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


person Sam Schutte    schedule 25.09.2008    source источник
comment
Придирка: скорее всего, это не база данных Access, а Jet MDB.   -  person David-W-Fenton    schedule 26.09.2008


Ответы (3)


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

person Horcrux7    schedule 25.09.2008
comment
Я согласен. Я писал интерфейсы для приложений MS Access несколько раз, и чтение данных, когда кто-то их использует, обычно не создает проблем с блокировкой. - person JosephStyons; 25.09.2008

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

person Mitchel Sellers    schedule 25.09.2008
comment
Это из-за блокировки страницы. - person Cade Roux; 25.09.2008

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

person Cade Roux    schedule 25.09.2008