![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать была ли изменена база? [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]Какими компонентами пользуешься?