Re[2]: Доступ к базе MS Access из разных процессов через MS
От: wildwind Россия  
Дата: 07.07.08 15:19
Оценка: 2 (1)
Здравствуйте, wildwind, Вы писали:

W>См. также


http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q200300
Доступ к базе 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. При чтении сделать "реконнект" к базе.
В этом случае стабильно читаются актуальные данные. Что вполне понятно.
Однако это очень "жестко" — делать каждый раз реконнект. Очень большие тормоза возникают. Хотелось бы этого избежать.

Спасибо.
Re: Доступ к базе MS Access из разных процессов через MS ADO
От: wildwind Россия  
Дата: 07.07.08 15:18
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.