Автор: Пользователь скрыл имя, 23 Декабря 2011 в 19:25, реферат
С точки зрения пользователей, база данных Delphi – это программа, которая обеспечивает работу с информацией, в нашем случае - с информацией в электронном виде. При работе с такой программой, которая как правило выдаёт на экране монитора таблицу, пользователь просматривая её может найти интересующую его информацию. Если программа, база данных Delphi, позволяет, то он может внести изменения или дополнить новую информацию, а так же удалить ненужную.
С точки зрения программиста, база данных Delphi - это набор файлов, содержащих информацию.
Записи в таблице базы данных
Рассмотрим, как фильтровать
записи в таблице базы
данных и индексировать их. Фильтровка
записей таблицы это эквивалент
SQL запросам.
Фильтровка нужна, для того чтобы показать
пользователю меньше записей согласно
определённому условию (например: показать
только тех студентов группы у кого день
рождения в мае или в январе и т.д.). Фильтрацию
в Delphi также можно использовать
как поиск какой то
записи в таблице.
На практике в большинстве случаев SQL
запросы
используются именно в таких случаях,
какой описан в примере.
Фильтр задается, как строка и её определяет
свойство Filter, а активность фильтра
определяет свойство Filtered, соответственно
если оно True то записи фильтруются. Фильтр
задаётся согласно всем правилам программирования
Delphi, к которым вы привыкли.
Рассмотрим функции фильтра:
Все возможности
фильтрации полностью документированы
в файле справки Delphi в разделе Developing Database
Applications > Using client datasets > Limiting what records appear.
Индексацию определяет свойство IndexFieldNames.
Для того чтобы упорядочить по возрастанию
таблицу по полю Vozrast нужно присвоить свойству
IndexFieldNames значение 'Vozrast'. Очень часто
индексация нужна тогда, когда пользователь
щёлкает на заголовках столбцов компонента
DBGrid.
procedure TForm1.DBGrid1TitleClick(
begin
ClientDataSet1.
end;
Также индексы можно создать с помощью
свойства IndexDefs. Их можно создать как во
время выполнения, так и в стадии создания
базы данных. Во время выполнения delphi приложения,
для того чтобы создать индекс нужно вызвать
метод Add свойства IndexDefs. Первый параметр
- это имя индекса, второй - имя поля (или
полей), третий - опции. Теперь для того
чтобы упорядочить таблицу по полю нужно
присвоить свойству IndexName имя нужного
индекса. Данный метод лучше, чем предыдущий,
так как можно быстро переключаться между
созданными заранее индексами. Для того
чтобы изменить индексы нужно воспользоваться
свойством Items свойства IndexDefs, указав порядковый
номер индекса. Получить порядковый номер
индекса можно через метод свойства IndexDefs
IndexOf , указав имя индекса. Например:
var
i:integer;
begin
…..
i:=ClientDataSet1.IndexDefs.
ClientDataSet1.IndexDefs.
Редактирование базы данных.
Редактировние
базы данных, то есть в компоненте
TClientDataSet можно редактировать только
текущую запись и извлекать значение только
из текущей записи. Текущая запись - это
та запись, которая имеет фокус ввода в
данный момент. Для того чтобы некоторая
запись стала текущей, для редактирования
базы данных, её пользователь должен
выделить , также её можно выделить программно.
Чтобы сделать некоторую запись текущей
в
Delphi используется
такой метод как
Locate:
Locate(const KeyFields: string;
const KeyValues: Variant; Options: TLocateOptions): Boolean;
Параметры:
ClientDataSet1.Locate('Adres',
ClientDataSet1.Locate('Adres',
ClientDataSet1.Locate('Adres',
Для навигации в таблице также можно использовать
хорошо знакомые нам методы:
First;
Last;
Next;
Prior;
Также:
MoveBy(Distance : Integer):Integer; Функция возвращает
количество записей, на которое фактически
произошло перемещение. Например: если
до конца осталось 7 записей, а перемещение
происходит на 10 записей, то функция возвратит
7.
RecNo: Integer;
Свойство обозначает номер записи, на
которой находится фокус ввода. Очень
странно, но отсчёт начинается с 1.
Получить порядковый номер текущей
записи:
Current_record:=
Установить фокус ввода на четвёртую запись
в таблице:
ClientDataSet1.RecNo:=4;
Итак, мы перешли к нужной нам записи.
Сначала про класс TField: чтобы получить
его значение нужно воспользоваться свойством
value, которое возвращает значение типа
Variant.
Также есть специализированные свойства:
AsString;AsFloat;AsCurrency;
Рассмотрим некоторые способы получения
некоторого поля из таблицы базы данных:
Для того чтобы
изменить значение полей нужно сначала
перевести компонент в состояние редактирования
(ClientDataSet1.edit ) присвоить нужным полям нужные
значения и обновить компонент(см. пример).
Переход в состояние редактирования осуществляет
процедура Edit; обновление осуществляет
процедура Post;
пример:
ClientDataSet1.edit;
ClientDataSet1['LastName']:='
ClientDataSet1['Ves']:='71';
ClientDataSet1.Fields[1].
ClientDataSet1.FieldByName('
ClientDataSet1.post;
Добавление записи в конец таблицы осуществляет
Для удаления записи используется метод Delete; предупреждение не
выводится и метод Post; вызывать не надо.
Мы рассматривали вывод из базы данных
в приложении с помощью таблицы, а далее
будем рассматривать вывод из базы данных
с помощью формы (тестовое приложение).