
- •«Современные методы разработки программ». Этапы решения задачи
- •Постановка задачи.
- •Техническое задание
- •Разработка структуры базы данных
- •Написание кодов
- •Отладка и внедрение
- •База данных
- •Поля таблицы
- •Ключи и индексы.
- •Способы доступа к данным.
- •Связь между таблицами.
- •Создание базы данных
- •Псевдонимы базы данных
- •Создание таблицы
- •Задание полей
- •Задание свойств таблицы (Table properties)
- •Свойство Validity Checks – проверка правильности значений.
- •Свойство Table Lookup – таблица просмотра
- •Свойство Table Language – язык таблицы
- •Изменение структуры таблицы с помощью Database Desktop
- •Изменение в реестре для корректного отображения русского языка
- •О бзор компонентов Delphi, используемых для связи с бд.
- •Форма модуль данных Data Module
- •Компонент Database
- •Компонент Table
- •Свойства, которые доступны программным путем
- •Методы компонента tTable
- •События компонента tTable.
- •К омпонент Query
- •Свойство sql
- •Query и Параметры
- •К омпонент DataSource
- •Свойства
- •События
- •Компонент dbNavigator
- •Компоненты визуализации и управления данными со страницы Data Control Компонент dbGrid
- •События
- •Другие компоненты визуализации
- •П ример простейшего приложения с использованием компонента Table
- •Основы языка sql. Общие сведения.
- •Отбор данных из таблиц. Оператор выбора Select
- •Совокупные характеристики
- •Вложенные запросы.
- •Объединение таблиц.
- •Соединение union
- •Модификация записей Вставка записи
- •Values(‘Орлов’,’Александр’,’Иванович’,’м’,’23.04.1981’,’Гродно’)
- •Редактирование записи
- •Удаление записи
- •Операции с таблицами Создание таблицы
- •Изменение структуры таблицы
- •Удаление таблицы
- •Операции с индексами
- •Создание индекса
- •Удаление индекса
Свойства, которые доступны программным путем
Способы получения данных из поля:
A := Table1.FieldByName(' Имя_поля ').AsString; // AsInteger, AsFloat
A := Table1Имя_поля.Value;
A := Table1.FieldByName(' Имя_поля ').Value;
A := Table1.FieldValues[' Имя_поля '];
A := Table1.Fields[Номер_поля].Value;
A := Table1.Fields[Номер_поля].AsString; // AsInteger, AsFloat
Например
Editfam.Text:= TableOsndan.FieldByName('Fam').AsString;
Editfam.Text:= TableOsndanFam.Value;
Editfam.Text:= TableOsndan.FieldByName('Fam').Value
Editfam.Text:= TableOsndan. FieldValues['Fam'];
Editfam.Text:= Table1.Fields[2].Value;
Editfam.Text:= Table1.Fields[2].AsString;
BOF и EOF Указывают на начало и конец таблицы. Применяются, например, так:
Table1.First;
while not Table1.EOF do
begin
... ...
Table1.Next;
end;
Важное замечание. При достижении конца таблицы, когда указатель указывает на последнюю запись, Table1.EOF вернет вам false.
RecordCount Позволяет узнать общее количество записей в таблице. Например: N:=Table1.RecordCount;
RecNo Указывает на номер текущей записи в таблице. В отличие от FoxPro и подобных, не может считаться идентификатором строки, так как зависит от индексации и других факторов. Если вам необходимо перемещаться по таблице, а затем возвращаться обратно, пользуйтесь ключевыми полями и первичными индексами. Или закладками (TBookmark).
State Указывает на состояние таблицы. Применяется, например, так:
if Table1.State in [dsInsert, dsEdit] then Table1.Post;
т.е. перед вызовом метода Post сначала проверяется, а имеет ли смысл этот вызов.
Методы компонента tTable
Edit Переводит строку в режим редактирования. Без этого вы не сможете в ней ничего изменить
Insert/Append Добавляют строку. Таблица автоматически переходит в режим редактирования добавленной строки. Отличие - Append добавляет строку в конец, а Insert - в текущую позицию.
Post Сохраняет внесенные изменения. Необходимо вызывать для каждой измененной записи, перед переходом на следующую.
Пример: Table1.Edit;
Table1.FieldByName(‘Fam’).AsString := ‘Иванов’;
Table1.Post;
Cancel Отказ от изменений.
Delete Удаляет запись.
First/Last Переход на первую/последнюю запись. Какая запись считается первой/последней, зависит от индекса, фильтра и других параметров.
Prior/Next Переход на предыдущую/последующую запись.
Общее правило, которому нужно следовать - всякий раз, когда Вы сдвигаетесь с текущей записи, введенные Вами данные будут записаны автоматически. Это означает, что вызовы First, Next, Prior и Last всегда выполняют Post, если Вы находились в режиме редактирования. Если Вы работаете с данными на сервере и транзакциями, тогда правила, приведенные здесь, не применяются. Однако, транзакции - это отдельный вопрос с их собственными специальными правилами. Тем не менее, даже если Вы не работаете с транзакциями, Вы можете все же отменить результаты вашего редактирования в любое время, до тех пор, пока не вызвали напрямую или косвенно метод Post. Например, если Вы перевели таблицу в режим редактирования, и изменили данные в одном или более полей, Вы можете всегда вернуть запись в исходное состояние вызовом метода Cancel.
SetRange, SetRangeStart, SetRangeEnd используются для фильтрации
FindKey Поиск записи по ключу. Ключ определяется текущим индексом.
FindNearest Обычно применяется, когда не найдена запись, точно соответствующая ключу, и надо найти хоть что-нибудь.
Locate Весьма интересный метод. Позволяет искать по любому полю или его части, по возможности использует имеющиеся индекы, даже если они не активны. Медленнее, чем FindKey. Обычно применяется, когда нет ключа для требуемого поля.
Lookup Аналогична Locate, но перемещения не происходит. Просто возвращается ключ подходящей строки.
О
пять
мы ограничились рассмотрением только
некоторых методов. Полный список их
слишком велик, а рассмотренные - наиболее
популярные.