Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сохранение данных в базе данных Paradox7


Автор: Гость_Ivan_S 11.10.2004, 11:55
При поступлении новых данных, информация сохраняется в драйвере, а по завершении работы с базой - они сохраняются в файл.
Как указать, чтобы данные немедленно были сохранены в файлене не закрывая базу данных?

Автор: Ivan_S 11.10.2004, 12:15
я понимаю, что вопрос не по теме, но в разделе БАЗЫ ДАННЫХ никого нет, а задачу необходимо реализовать в Builder-е

Автор: mr.DUDA 12.10.2004, 07:46
Я не дока в Paradox, но там по идее должны быть функции типа Query и Fetch. Попробуй после выполнения запроса (Query) перечислить результаты с пом. Fetch-функции и пиши получаемые данные (т.е. строки таблицы) построчно в файл.

Автор: VID 12.10.2004, 08:21
Если ты пользуешь базы данных Paradox то в Builder'e ты должен пользоват либо компоненты BDE: TTable и TQuery, либо компоненты ADO: TADOConnection и TADOQeury, либо TADOTable.
В первом случае у компонента TTable есть свойство CachedUpdates, которое указывает кэшируются ли в памяти обновления набора данных (в принципе это увеличивает скорость работы с приложениями), далее необходимо провести транзакцию с базой данных, то есть переслать эти изменения, для этого необходимо выполнить команду:
Код

   Table1->ApplyUpdates();
   Table1->CommitUpdates();

Вторая команда очищает буфер.
Во-втором случае, при использовании компонентов ADO, у компонентов TADOQuery и TADOTable транзакция осуществляется вызовом функций Post(), которая и должна её осуществить.

Автор: Ivan_S 14.10.2004, 06:35
Все это не помогло! Единственный результирующий способ, который я нашел - это закрыть все таблицы (TTable), использующие эту базу данных. Запросы (TQuery) отключать не обязательно. Проблема встает тогда, когда другие прилажения используют данную базу данных.

Автор: VID 20.10.2004, 08:41
В этом то и проблема, при использовании базы данных несколькими приложениями задача осуществления транзакций ложится на программиста. В TTable кучка свойств отвечающая за это...
Можешь привести значения свойств твоего TTable. Может оттуда что-нить увидим :yasno

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)