Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Компонент TDataSource

Следует более детально рассмотреть компонент TDataSource. Ранее уже упоминалось, что этот компонент связывается с набором данных. Эта связь осуществляется через свойство DataSet, которое содержит информацию о текущем состоянии набора данных. В листинге 2Л приведен пример использования этого свойства.

Листинг 2.1. Пример использования свойства State компонента TDataSource
if DataSourcel.Dataset <> nil then
PostButton.Enabled := DataSourcel.State in [dsEdit, dslnsert];

 

Как видно из приведенного примера, кнопка переводится в активное состояние в том случае, если набор данных в текущий момент доступен для редактирования. У этого компонента существует набор свойств и методов, которые облегчают работу с ним.
Свойство AutoEdit автоматически переводит набор данных в состояние редактирования, если имеет значение True, когда связанный элемент ввода получает фокус. Метод Edit переводит связанный набор данных в состояние редактирования.

Метод-обработчик OnDataChange вызывается при редактировании данных в связанном визуальном компоненте.
Метод-обработчик события OnUpdateData вызывается перед тем, как измененные данные будут сохранены в наборе данных. Обработчик вызывается перед выполнением метода Post.
Метод-обработчик события OnStateChange вызывается, когда изменяется состояние связанного набора данных.

Набор данных
Массив записей, полученный приложением по собственному запросу, называется набором данных. Набор данных как объект ведет свое начало от класса TDataSet и наследует его свойства.

 

Класс TDataSet является базовым классом иерархии, он инкапсулирует абстрактный набор данных и реализует общие методы работы с ним. На основе базового класса реализованы специальные компоненты, предоставляющие разработчику доступ к той или иной технологии.

Для чтения или записи в набор данных его необходимо для начала открыть. Открыть набор данных можно двумя способами.
Можно присвоить свойству Active значение True либо вызвать метод Open. Завершение работы с набором данных производиться сходным образом. Либо свойству Active присваивается значение False, либо вызывается метод Close. Перед открытием набора данных автоматически инициируется событие Before-Open, а после открытия, когда в набор будут переданы данные, активируется событие AfterOpen.

Перед закрытием набора данных вызываются методы BeforeClose и AfterClose.
Используя данные методы-обработчики, можно выполнить в приложении некоторые действия, как это показано в листинге 2.2.

 

Листинг 2.2. Обработка события, возникающего при закрытии набора данных
procedure TForml.CustTableVeri fyBeforeClose(DataSet: TDataSet):
begin
if (CustTable.State in [dsEdit, dslnsert]) then begin
case MessageDlg('Желаете сохранить?'. mtConfirmation, mbYesNoCancel, 0) of
mrYes: CustTable.Post; { Сохранение изменений}
mrNo: CustTable.Cancel;'{ Отмена изменений}
mrCancel: Abort: { Прекращение закрытия набора данных }
end;
end;
end;

В приведенном примере производится обработка события, возникающего перед тем, как набор данных будет закрыт.



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru