База данных Paradox с BDE - Принудительные изменения на диск при открытии базы данных / таблицы

У нас есть таблица базы данных Paradox, которую мы хотим отразить по сети, используя что-то вроде DSynchronize.

Проблема, которую я вижу, заключается в том, что Paradox через BDE (Borland Database Engine) не обновляет файловую систему до тех пор, пока таблица не будет закрыта или не заполнится какой-либо буфер, который она использует.

Я использовал вызов сброса буферов, который не влияет на файлы на диске. Призыв к закрытию стола вызывает обновление, которое я ищу, однако это очень большая кувалда для решения этой проблемы.

Я просто где-то пропустил какую-то настройку BDE?

Наконец, совместное использование этой базы данных по сети с использованием правильных настроек NetDir делает изменение видимым для другого компьютера. Файлы остаются нетронутыми. В двух системах есть только общая папка NetDir и папка данных. Я просто не понимаю, как изменения могут происходить без изменения файлов, чего, похоже, нет.

Любые советы будут очень признательны.


person Nevar    schedule 07.03.2012    source источник


Ответы (1)


Попробуйте dbiSaveChanges.

person Ondrej Kelle    schedule 07.03.2012
comment
Это то, что FlushBuffers делает внутренне, но я попробую вызвать его напрямую. - person Nevar; 08.03.2012
comment
В ПОРЯДКЕ. Я нашел ответ на свой вопрос. Paradox / BDE обновляет файлы на диске. Это просто предварительное выделение места в файлах, поэтому ему нужно только время от времени прикасаться к ним. Это означает, что любое программное обеспечение для мониторинга файловой системы не увидит применяемых изменений. Также необходимо скопировать файлы index и db, иначе вы не синхронизируете. - person Nevar; 08.03.2012