Доступ к базе MS Access из разных процессов через MS ADO
От: SATo Россия  
Дата: 07.07.08 10:00
Оценка:
Здравствуйте.

Есть такая задача: Access-овский mdb-шник, приложение сохраняет там всю свою информацию. Есть другое приложение, вспомогательное, которое может читать инфу из этой базы. Основное приложение пишет что-то в базу и выдает сигнал о том, что инфа изменилась. Вспомогательное приложение получает сигнал и считывает эти данные из базы. Но увы — периодически считываются старые данные, не те что были помещены непосредственно перед считыванием.

По данной проблеме нашел следующую инфу в MSDN:
File Caching and Data Consistency
SAMPLE: Fastread Demonstrates the Use of the OLE DB Provider for Jet IIdle Interface
Это почти то, что нужно, но здесь работа идет напрямую через OLE DB.
А у нас используется ADO (через провайдер "Microsoft.Jet.OLEDB.4.0").
И вот каким образом получить доступ к функционалу, описанному в вышеуказанных статьях, я так и не понял.

Может ли кто-то что-либо подсказать по этому поводу?
Или есть другие возможности получить актуальные данные?

PS.
В принципе, по крайней мере одна возможность есть. Если сделать так:
1. Процесс записи обернуть в транзакцию.
2. При чтении сделать "реконнект" к базе.
В этом случае стабильно читаются актуальные данные. Что вполне понятно.
Однако это очень "жестко" — делать каждый раз реконнект. Очень большие тормоза возникают. Хотелось бы этого избежать.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.