Здравствуйте.
Есть такая задача: 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. При чтении сделать "реконнект" к базе.
В этом случае стабильно читаются актуальные данные. Что вполне понятно.
Однако это очень "жестко" — делать каждый раз реконнект. Очень большие тормоза возникают. Хотелось бы этого избежать.
Спасибо.
Здравствуйте, SATo, Вы писали:
SAT>По данной проблеме нашел следующую инфу в MSDN:
SAT>File Caching and Data Consistency
SAT>SAMPLE: Fastread Demonstrates the Use of the OLE DB Provider for Jet IIdle Interface
SAT>Это почти то, что нужно, но здесь работа идет напрямую через OLE DB.
SAT>А у нас используется ADO (через провайдер "Microsoft.Jet.OLEDB.4.0").
SAT>И вот каким образом получить доступ к функционалу, описанному в вышеуказанных статьях, я так и не понял.
SAT>Может ли кто-то что-либо подсказать по этому поводу?
SAT>Или есть другие возможности получить актуальные данные?
В ADO можно задавать расширенные свойства подключения и команд. Возможно все что вам нужно — после таких "ключевых" изменений выполнять синхронный commit.
См. также
http://www.rsdn.ru/Forum/message/1860152.all.aspxАвтор: Koumandin
Дата: 21.04.06