Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие ТБД.doc
Скачиваний:
26
Добавлен:
04.09.2019
Размер:
1.92 Mб
Скачать

Класс tdatasource

Класс TDataSource реализует связь между компонентами - наборами данных и элементами управления, используемыми для отображения данных.

При построении отношений между таблицами "родительская-дочерняя" компонент "источник данных" служит для связывания наборов данных, указывая родительский набор данных.

Класс TDataSource содержит набор свойств и методов, используемых для доступа к набору данных, включая следующие:

  • AutoEdit - свойство, определяющее, будет ли автоматически вызываться метод Edit набора данных при получении фокуса элементом управления, ассоциированным с источником данных;

DataSet - свойство, указывающее используемый набор данных.

Изменяя значение свойства DataSet во время выполнения, можно эффективно переключаться на работу с различными наборами данных, отображая разные наборы данных в одних и тех же элементах управления.

Например:

DataSource.DataSet := Table1;.

  • Enabled - свойство, определяющее, будет ли элемент управления отображать ассоциированные с ним данные, или будет отображаться пустым;

  • State - свойство, позволяющее определить состояние используемого набора данных.

Например:

if DataSource1.Dataset <> nil then

//Кнопка доступна только в том случае, если набор

//данных находится в состоянии редактирования

//или вставки новой записи

BtnPost1.Enabled := DataSource1.State in [dsEdit, dsInsert];

Класс ttable

Компонент типа TTable используется для доступа к базам данных посредством определения источника данных DSN и имени таблицы базы данных. При этом допускается выбор всех полей таблицы или только части полей, а также задание фильтра, определяющего, какие строки таблицы будут доступны.

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

  • DatabaseName - свойство, определяющее имя источника данных DSN;

  • CanModify - свойство, определяющее, может ли приложение выполнять вставку, редактирование и удаление записей в таблице;

  • DefaultIndex - свойство, определяющее, должны ли данные в таблице быть упорядочены при ее открытии. Если значение свойства равно True (по умолчанию), то выполняется упорядочивание по первичному ключу или уникальному индексу;

  • IndexName - свойство, позволяющее определить вторичный индекс, используемый для сортировки открываемого набора данных;

  • Exclusive - свойство, позволяющее установить исключительный режим доступа к таблице (значение свойства должно быть определено до открытия таблицы);

  • MasterSource - свойство, определяющее имя компонента "источник данных" родительской таблицы для установления отношения между таблицами "родительская-дочерняя";

  • MasterFields - свойство, определяющее одно или несколько полей из родительской таблицы, служащих для связи с соответствующими полями данной дочерней таблицы (Это задает отношение между родительской и дочерней таблицами. Поля в списке разделяются точкой с запятой);

  • ReadOnly - свойство, позволяющее установить для таблицы режим доступа "только для чтения";

  • TableName - свойство, указывающее используемую таблицу базы данных;

  • RecNo - свойство, указывающее номер текущей записи набора данных;

  • FindKey - метод, выполняющий поиск значения или значений, перечисленных в списке, для ключевого поля;

  • FindNearest - метод, перемещающий курсор на запись, содержащую значение, наиболее близкое к указанному значению ключевого поля (поиск может выполняться как по одному значению, так и по нескольким, если используется составной индекс).

Например:

{Изменение значения в компоненте Edit1 автоматически перемещает позицию курсора

в наборе данных Table1}

procedure TForm1.FormActivate(Sender: TObject);

begin

Table1.DatabaseName := 'DBDemos';

Table1.TableName := 'Customer.db';

Table1.Active := True;

Table1.IndexName := 'ByCompany'; {Ключевое поле}

end;

{Обработчик события OnChange (изменение значения) для компонента Edit1}

procedure TForm1.Edit1Change(Sender: TObject);

begin

Table1.FindNearest([Edit1.Text]); {Выполнение поиска}

end;

  • Locate - метод, используемый для поиска первого вхождения значения указанного поля или набора полей (если запись найдена, то она становится текущей).

Например:

with Table1 do

Locate('F1;F2',

VarArrayOf(['ABC', 123]),

[loPartialKey]);