В случае когда не все области ввода заполнены (DBEdit1-DBEdi2), чтобы не сохранять в базе неполно введенную запись, используется следующий код:
procedure TForm5.ADOTable1BeforePost(DataSet: TDataSet); begin if (ADOTable1.FieldByName('Фамилия').text='') or (ADOTable.FieldByName('Дата').text='') then begin dataset.Cancel; end; end;
Т.е. должны сохраняться только записи где присутствует и фамилия и дата. Условие выполняется. Неполная запись отменяется, но в DBGrid остается пустая строка при каждой отмене. И их количество все время увеличивается. (база MSAccess) Как это исправить?
volvo
10.11.2009 4:45
if (ADOTable1.FieldByName('Фамилия').text='') or (ADOTable.FieldByName('Дата').text='') then begin dataset.Cancel; // отменил операцию Abort; dataset.Refresh; // подгрузил неизмененный датасет end;
Как результат - операция прервана, и пустая строка не добавляется.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.