Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение измененных посредством TQuery таблиц [D5, Paradox]


Роман Василенко ©   (2002-03-08 11:56:00) 

Добрый... день.

Ситуация такая:

На форме есть TQuery, TDataSource, TDBGrid, в общем, все, как обычно. С помощью TQuery выполняется какой-нибудь запрос DML, например "delete from...". Существует некоторое количество случаев, когда результаты подобных команд не сохраняются в таблице. Ну, например, программка обвалилась, или что еще...

Вопрос: существует ли твердый способ сохранить изменения в таблицу (вроде dbiSaveChanges) непосредственно сразу после употребления запроса? Если можно, подскажите способ, при условии, что:

1. Я не использую TDatabase, TSession.
2. При инициализации всем TQuery задается путь к каталогу с файлами БД в свойство DatabaseName
3. Я использую таблицы формата Paradox (если это принципиально)


Роман Василенко   (2002-03-18 10:04:00) [1]

Спасибо.


dealing   (2002-03-14 11:35:00) [2]

Попробуй использовать TDataBase.
При любом изменении таблицы делай следующее:

try
DataBase1.StartTransaction; // Начало Транзакции //
Query1.Unprepare;
...
Query1.Prepare;
Query1.ExecSql;
DataBase1.Commit; // Подверждение результатов транзакции,
если все прошло успешно //
except
DataBase1.RollBack; // Отмена выполненной транзакции, недачное
завершение операции //
MessageDlg("Ошибка записи в базу", , mtInformation,[mbOk],0);
end;

Такая система транзакций работает безотказно, все изменения отражаются четко.


Наверх

Титульная страница Поиск, карта сайта Написать письмо