Как узнать, изменены ли данные MS Access?

Я делаю вид, что добавляю записи в базу данных MS с Java. Я могу сделать это с помощью Jackess, но по какой-то причине программное обеспечение, использующее эту базу данных, не видит данные до тех пор, пока: 1 не закроет и снова не откроет программное обеспечение или 2 не откроет базу данных с помощью MS Access и не закроет ее независимо от изменения данных

это программное обеспечение является POS. Когда я ввожу записи с любого из терминалов, они видны с другого. Когда я ввожу записи из MS Access, они видны с любого терминала, мне не нужно закрывать и снова открывать программное обеспечение. Однако, если я ввожу записи из своего Java-приложения, они автоматически не отображаются.

Есть ли в файле .mdb какой-либо флаг для уведомления об изменении данных?

Спасибо


person Laure_f_o    schedule 29.06.2018    source источник
comment
Похоже, ваше Java-приложение начало транзакцию, которую оно никогда не совершит.   -  person Gustav    schedule 29.06.2018
comment
Я думаю, что функции общего доступа в jackccess не реализованы. Нет управления файлами .ldb, поэтому другие приложения не обнаруживают модификации, и я думаю, что опасно писать с использованием jackccess в многопользовательской среде...   -  person Laure_f_o    schedule 30.06.2018
comment
Управление файлом ldb определяет только то, можете ли вы открыть общий файл базы данных. В противном случае она будет и должна быть открыта в монопольном режиме, что требует, чтобы ни один другой процесс не открывал базу данных ни совместно, ни монопольно.   -  person Gustav    schedule 30.06.2018
comment
хорошо, но как проверить, если данные изменены?   -  person Laure_f_o    schedule 11.07.2018
comment
Не могу сказать. Я ничего не знаю ни о Java, ни о Jacksess.   -  person Gustav    schedule 11.07.2018


Ответы (1)


Я думаю, что опасно писать с использованием jackccess в многопользовательской среде.

Это. Jackcess не следует использовать для записи в файл базы данных Access при наличии нескольких одновременных пользователей.

Ваша POS-система и сам Access используют механизм базы данных Access для управления одновременными пользователями. Несмотря на то, что на каждой машине работает собственная копия ядра базы данных Access, эти копии работают совместно, отслеживая изменения в файле базы данных.

С другой стороны, Jackcess вообще не использует ядро ​​базы данных Access; он записывает непосредственно в файл базы данных Access. У него нет практического способа узнать, что другие процессы могли сделать с файлом, и у него нет практического способа сообщить этим другим процессам, что он изменил файл.

Вывод: если в вашей среде одновременно работает несколько пользователей, не используйте Jackcess для обновления базы данных.

person Gord Thompson    schedule 12.07.2018