![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Доброго времени суток!
Есть следующая проблемка: требуется отредактировать содержимое базы данных через DBGrid, для этого пишу: по кнопке "перейти в режим редактирования": Код:
DBGrid1.Options:=DBGrid1.Options-[dgRowSelect]+[dgEditing]; DBGrid1.DataSource.DataSet.Edit; по кнопке "сохранить изменения": Код:
t := MessageBox(0 , PChar('Ñîõðàíèòü èçìåíåíèÿ äëÿ òåêóùåé çàïèñè?') , PChar('Âíèìàíèå!') , MB_YESNO + MB_ICONINFORMATION ); case t of IDYES: begin fmChild1.DBGrid1.DataSource.DataSet.Post; fmChild1.DBGrid1.Options:=fmChild1.DBGrid1.Options-[dgEditing]+[dgRowSelect]; ShowMessage('Èçìåíåíèÿ óñïåøíî ñîõðàíåíû!'); end; IDNO: begin fmChild1.DBNavigator1.BtnClick(nbCancel); end; end; Все вроде бы устраивает, кроме 2 пунктов: 1) если одно поле было выделено, но оставлено без изменений, либо очищено - может всплыть ошибка 'DataSource not in edit or insert mode' 2) редактирование приоисходит в режиме "реального времени", т.е., если пользователь ввел данные и нажал на кнопку "сохранить изменения", выбрал пункт "отмена", то отмена произойдет только для последней редактируемой ячейки, нельзя ли сделать так, чтобы отмена происходила для всех внесенных изменений? Помогите, кто чем может.... Memento Mori(арти) |