GennadyK |
Если я правильно понимаю, главное не роллбэк, а коммит. Даже если оборвать программу после первого апдейта ничего не должно измениться в дбф файле. Но почему-то 1-й апдейт меняет файл выполняя myCommand.ExecuteNonQuery(). Где система хранит неподтвержденные данные и как транзакция коммитится? Серверной части ведь нет, как у SQL сервера.
Спасибо! |
Я тут подумал и пришел к выводу, что Вы пытаетесь все сделать не правильно... Дело в том, что в FoxPro нет транзакций для свободных таблиц (эта возможность появилась только в версии 9.0, но она еще сыроватая и немного запутанная). Аналогично и в ADO.NET нет соответствующего механизма для поддержки транзакций в FoxPro...
Если использовать контейнер базы данных FoxPro - то в этом случае разработка баз данных мало отличается от SQL Server - Вы создаете хранимые процедуры, в кторых и выполняете как и в SQL Server явные BEGIN TRANSACTION/END TRANSACTION/COMMIT... В своих WEB проектах с базами данных FoxPro я использую хранимые процедуры в тех местах, где идет изменение в более чем двух местах. В этом случае все работает очень правильно и хорошо...
Извините, что не понял до конца Вашего вопроса, просто я давно перешел на Web Services - которые уже вызваются из под ASP.NET а сами Web Service написаны на самом FoxPro... Так что все получается очень дешево и очень сердито...
Good luck!