Приложение на VB6
Подключение к СУБД Access 2003 (MS JET 4.0)
Используемый компонент ADO DB.
При работе с базой данных иногда (достаточно редко) возникает глюк, при котором добавляемые записи не сохраняются в таблицах базы данных. Причем, после того как этот глюк проявляется, все записи добавляемые после этого момента в базу доступны только в текущей сессии подключения к базе данных, которая совпадает по времени с работой приложения. И получается следующее: глобальный объект ADODB.Connection создается при запуске приложения, далее идет подключение к базе и в дальнейшем приложение использует это соединение. Все прекрасно работает, но в один прекрасный момент (который может проявиться раз в месяц, а то и реже) происходит глюк и после закрытия приложения, данных, которые добавлялись, изменялись и т.п. в базе данных нет как нет. При работе приложения глюк никак не проявляется, никаких исключений не происходит, с добавленными данными можно работать и пр., но как только закрыл приложение, то данным каюк. Такое ощущение, что данные есть в кэше, а в сам файл mdb не прописываются. Причем поле счетчика увеличивается и после нормального добавления следующей записи ( в следующем сеансе работы) можно даже по отсутствующим идентификаторам точно посчитать какое количество записей было утеряно.
В принципе конечно можно каждый раз при использовании ADODB.Connection делать реконнект, или вообще создавать/уничтожать ADODB.Connection, но такой вариант мне жутко не нравится, так как он не соответствует принципу лени. Да и вообще непонятно что глючит, то ли сам провайдер, то ли ADO. Может кто уже сталкивался с подобным?