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

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

Как узнать была ли изменена база? [D6, IB6.x]


mlitkin ©   (2005-01-31 04:51:00) 

Подскажите, пожалуйста, как узнать была ли изменена база перед тем, как делать commit транзакции? Т.е. есть ли несохраненные с помощью commit изменения. Это для того, чтобы, например, определить нужно ли выдавать MessageDlg с вопросом сохранять ли изменения или нет. Запросы некэшированные.


DSKalugin   (2005-01-31 17:09:00) [1]

IBTransaction.InTransaction
и см  [2]


jack128   (2005-01-31 08:37:00) [2]

mlitkin   (31.01.05 8:26) [4]
С помощью переменной эт мне не нравится.

В явном или неявном виде переменная всегда будет использоваться...


mlitkin   (2005-01-31 08:26:00) [3]

Deniz
Я пользуюсь IB-компонентами (IBDataSet, IBTransaction и др.).

jack128 ©
Неее. С помощью переменной эт мне не нравится. Так я умею. Хотелось бы как-то узнать, есть ли незакомиченные изменения или нет...


jack128   (2005-01-31 08:11:00) [4]

Сорри, так, конечно, надо MessageBox(Handle, PChar('Сохранить изменения?'), '', MB_YESNO) = IDNO


jack128   (2005-01-31 08:10:00) [5]

Так пойдет?
procedure TForm1.IBDataSet1AfterPost(DataSet: TDataSet);
begin
 FChangeFlag := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Transaction1.InTransaction then
 begin
   if FChangeFlag and (MessageBox(Handle, PChar('Сохранить изменения?'), '', MB_YESNO) = IDYES) then
     Transaction1.Rollback
   else
     Transaction1.Commit;
   FChangeFlag := False;
 end;
end;


Deniz   (2005-01-31 06:57:00) [6]

Какими компонентами пользуешься?


Наверх

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