Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36Insert.shtml

Глава 36. TDataSet.Insert

Метод Insert

Затрагиваемые объекты TDataSet
Назначение Метод Insert переводит TDataSet в режим Insert и вставляет в него новую пустую запись.
Объявление procedure Insert;
Пример синтаксиса
// Вставить в  TDataSet новую пустую запись

procedure TTDataSetTestForm.InsertSpeedButtonClick(Sender: TObject);
begin
   CustomerTable.Insert;

end;
Описание        Метод Insert открывает в текущей позиции курсора TDataSet новую пустую запись. Обратите внимание, что метод работает только с TDataSet, возвращающим модифицируемый актуальный набор результатов. В противном случае возбуждается исключение. Для корректного функционирования метода Insert, TDataSet должен быть открыт, иначе возбуждается исключение. Прежде всего метод вызывает CheckBrowseMode и проверяет флаг модификации. Затем, если процедура обработчика событий Beforelnsert присвоена, она вызывается. Далее создается и инициализируется новая запись. Любые закладки, на которые могла повлиять вставка, перенастраиваются. Счетчик записей TDataSet также обновляется. Состояние TDataSet устанавливается в dslnsert. При наличии процедуры обработчика событий OnNewRecord, она будет вызываться. Если процедура обработчика событий OnNewRecord возбуждает исключение, вставка прерывается, состояние возвращается в dsBrowse, TDataSet ресинхронизируется в свою предыдущую позицию и исключение возбуждается повторно. Если обработчика событий OnNewRecord нет или он выполняется без исключений, свойство Modified из TDataSet устанавливается в False. Наконец, если процедура обработчика событий Afterlnsert присвоена, она вызывается. Обратите внимание, что для случая индексированных таблиц при посылке новой записи, созданной методами Insert, она помещается в таблице в корректное положение, базируясь на индексе. Это известно как эффект record fly-away. Имейте в виду, что такое поведение может заставить текущие чувствительные компоненты, включая сетки данных, изменяться неожиданными путями. В качестве общего правила следует помнить, что после пересылки новой записи вы должны обновить и перепозиционировать TDataSet. (Очевидно, если индекс не используется, запись будет сохранять свое положение.)

[Свойство Active] [Метод ActiveBuffer] [Событие AfterCancel] [Событие AfterClose] [Событие AfterDelete] [Событие AfterEdit] [Событие AfterInsert] [Событие AfterOpen] [Событие AfterPost] [Метод Append] [Метод AppendRecord] [Метод ApplyUpdates] [Свойство AutoCalcFields] [Свойство BOF] [Событие BeforeCancel] [Событие BeforeClose] [Событие BeforeDelete] [Событие BeforeEdit] [Событие BeforeInsert] [Событие BeforeOpen] [Событие BeforePost] [Свойство Bookmark] [Свойство CachedUpdates] [Свойство CanModify] [Метод Cancel] [Метод CancelUpdates] [Метод CheckBrowseMode] [Метод ClearFields] [Метод Close] [Метод CommitUpdates] [Метод ControlsDisabled] [Метод CursorPosChanged] [Свойство DataSource] [Свойство DefaultFields] [Метод Delete] [Метод DisableControls] [Метод Edit] [Метод EnableControls] [Свойство EOF] [Свойство ExpIndex] [Метод FetchAll] [Метод FieldByName] [Свойство FieldCount] [Свойство FieldDefs] [Свойство FieldValues] [Свойство Fields] [Свойство Filter] [Свойство FilterOptions] [Свойство Filtered] [Метод FindField] [Методы FindFirst] [Методы FindLast] [Методы FindNext] [Методы FindPrior] [Метод First] [Свойство Found] [Метод FreeBookmark] [Метод GetBookmark] [Метод GetCurrentRecord] [Метод GetFieldList] [Метод GetFieldNames] [Метод GotoBookmark] [Свойство Handle] [Метод Insert] [Метод InsertRecord] [Метод IsLinkedTo] [Свойство KeySize] [Метод Last] [Свойство Locale] [Метод Locate] [Метод Lookup] [Свойство Modified] [Метод MoveBy] [Метод Next] [Событие OnCalcFields] [Событие OnDeleteError] [Событие OnEditError] [Событие OnFilterRecord] [Событие OnNewRecord] [Событие OnPostError] [Событие OnServerYield] [Событие OnUpdateError] [Событие OnUpdateRecord] [Метод Open] [Метод Post] [Метод Prior] [Свойство RecNo] [Свойство RecordCount] [Свойство RecordSize] [Метод Refresh] [Метод Resync] [Метод RevertRecord] [Метод SetDetailFields] [Метод SetFields] [Свойство State] [Метод UpdateCursorPos] [Свойство UpdateObject] [Метод UpdateRecord] [Свойство UpdateRecordTypes] [Метод UpdateStatus] [Свойство UpdatesPending]


<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36Insert.shtml