![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() к примеру имеется база access с таблицей glavnay с полями (id, famil, othestvo, name, drojdenia, adres, telefon) данные в dbgrid выводятся через ADOTable, редактирование записи происходит через form2 на форме есть 6 DBEdit и один Button по нажатию на который происходит сохранение данных (if DataModule3.ADOTable1.Modified then
DataModule3.ADOTable1.Post ![]() Теперь сама проблемка, решил изменить запись, открыл form2 изменил значение поля famil перешел в othestvo там изменил и перешел в name и решил не сохранять изменения и просто закрыл форму но поля famil, othestvo в dbgrid уже содержат изменения хотя я и не нажимал Button. Подскажите как можно решить эту проблемку. ![]() |
#2
|
|||
|
|||
![]() ADOTable1.Cancel тебе поможет. Пока ты не сделал Post все можно изменить. можно сделать так, что бы можно было изменить и после поста, но это сложнее - читай о клиентских транзакциях.
|
#3
|
||||
|
||||
![]() lmikle большое спасибо тебе за совет
![]() DataModule3.ADOTable1.Cancel; form2.Close; ![]() |
#4
|
|||
|
|||
![]() Можно так.
Но я бы сделал подругому. В самой форме редактирования повесить на кнопки ModalResult - mrOK и mrCancel соотв. Еще у кнопки отмены выставить св-во Cancel в True. Т.е. кнопки у нас без обработчиков получаются. А вот вызов формы редактирования надо сделать так: Код:
procedure TForm1.Edit(...); begin ADOTable1.Edit; If Form2.ShowModal = mrOK Then ADOTable1.Post Else ADOTable1.Cancel; end; |
#5
|
||||
|
||||
![]() lmikle, еще раз спасибо.
Тобишь кликнув по кнопке в правом верхнем углу происходит закрытие Form2 и ADOTable1 без сохранения изменений. |