В интерфейсной части модуля описан тип mas и заголовок процедуры сортировки. Поэтому при подключении этого модуля с помощью предложения Uses в любой программе становятся доступны и этот тип и процедура, что и продемонстрировано в главной программе
Лабораторная работа № 2
Цель работы:
1. Изучить начальные этапы создания приложения для работы с базами данных в среде Delphi:
· ознакомить с компонентами доступа к БД: TTable , TDataSource ;
· ознакомить с компонентами управления БД: TDBGrid , TDBNavigator .
2. Усвоить ввод и редактирование текста.
Методика создания приложения для работы с базой данных ничем не отличается от методики создания обычной программы: к форме добавляются необходимые компоненты, устанавливаются значения свойств компонентов, разрабатываются необходимые процедуры обработки событий.
Приложение работы с базой данных должно содержать компоненты, обеспечивающие доступ к данным, возможность просмотра и редактирования содержимого полей. Компоненты доступа к данным находятся на вкладке Data Access и BDE палитры компонентов, а компоненты отображения данных — на вкладке Data Controls.
Основные компоненты доступа и управления к базам данных:
Компоненты доступа к базам данных:
TTable - обеспечивает взаимодействие с таблицей БД, т.е. компонент TTableуказывает, откуда брать данные и какие поля будут составлять набор данных. Компонент TTable имеет следующие основные свойства:
· DatabaseName – база данных
· TableName - имя таблицы
· Active – активация таблицы (значение True активирует ее)
Свойство DatabaseName определяет базу данных, в которой находится таблица. Это свойство может содержать:
* псевдоним (псевдоним)
* путь для локальных БД
* путь и имя файла базы данных для Local InterBase
* локальный псевдоним, определенный через компонент TDatabase.
Свойство TableName определяет имя таблицы базы данных.
TDataSource - определяет связь между базой данных и компонентами управления данными, то есть компонент TDataSource является промежуточным звеном между компонентом Table 1, соединенным с реальной БД и визуальными компонентами DBGrid 1 и DBNavigator 1, с помощью которых пользователь взаимодействует с таблицей.
В большинстве случаев, все, что нужно сделать с DataSource - это указать в свойстве DataSet соответствующий TTable. Затем, у визуального компонента вроде DBGrid или DBNavigator в свойстве DataSourceуказываетсяTDataSource, который используется в настоящее время.
Компоненты управления данными с палитры Data
Contorls:
TDBGrid - отображает содержимое таблицы БД в виде сетки, в котором столбцы соответствуют полям, а строки записям таблицы.
Компонент имеет следующие свойства:
· Data
Source – содержит ссылку на компонент типа TDataSource, служащий источником данных;
· Editor
Mode – если содержит true, пользователь может редактировать ячейку после нажатия клавиши F 2 или Enter. Игнорируется, если свойство Option включает значение goEditing или goAlwaysShowEditor;
· Option – определяет вид и поведение компонента;
o dgEditing – разрешает изменение набора данных;
o dgAlwaysShowEditor – автоматически переводит столбец в режим редактирования при его выделение;
o dgTitles – показывает заголовки столбцов;
o dgIndicator – показывает индикатор текущей строки в самом левом фиксированном столбце;
o dgColumnResize – разрешает пользователю вручную изменять ширину столбцов;
o dgColLines – показывает разделяющие вертикальные линии;
o dgRowLines – показывает разделяющие горизонтальные линии;
o dgTabs – разрешает переход от столбца к столбцу с помощью клавиши Tab;
o dgRowSelect – разрешает выделение цветом всей выбранной строки;
o dgAlwaysShowSelection – выделение текущей строки сохраняется, если компонент теряет фокус ввода;
o dgConfirmDelete – удаление строки должно подтверждаться;
o dgCancelOnExit – если пользователь вставил пустую строку и покинул ее, она не помещается в набор данных;
o dgMultiSelect – разрешает множественный выбор строк.
TDBNavigator - осуществляет перемещение и редактирование записей (вид и назначение кнопок указаны в пункте DBNavigator). С помощью свойства DataSource компонент связывается с нужным источником данныхТDataSource – это все, что необходимо для его нормальной работы. Свойство ConfirmDelete управляет отображением диалогового окна с просьбой подтвердить удаление записи (значение True этого свойства выводит окно).
Создание приложения:
1. Запустить Delphi.
2. В свойстве Caption изменить имя формы на Студенты.
3. Установить на форму компоненту TTable.
4. Определить следующие свойства компоненты Table 1.
· определить псевдоним - выбрать в свойстве DatabaseName инспектора объектов псевдоним «Student».
· задать имя таблицы - выбрать в свойстве TableName таблицу Student.
· активизировать таблицу - установить в свойстве Active значение true(это будет возможно после выполнения пункта 4).
5. Разместить на форму компоненту DataSource с закладки Data
Accessи в свойстве DataSet инспектора объектов выбрать компоненту Table 1.
6. Расположить на форме компоненту DBGridс закладки Data
Controls и в свойстве DataSource выбрать DataSource 1.
Если вы внесли несколько записей, то форма Студенты примет вид:
Редактор полей:
Для управления отображением данных таблицы используют специальный редактор полей - Editor
Field.
Для вызова Editor
Field следует:
· Дважды щелкнуть по Table 1.
· Для открывшегося окна вызвать контекстное меню и выбрать пункт Add All Field, если необходимо добавить все поля таблицы.
· Add
Field для выбора отдельного поля.
Редактор полей имеет следующие свойства:
· DisplayLabel – задает имя полю;
· DisplayWidth – определяет количество символов, которое будет выводится в поле;
Определим свойства для полей таблицы Student . db.
1. Выбрать в окне редактора полей таблицы поле SFioи в свойстве DisplayLabel инспектора объектов изменить SFio на ФИО. Выбрать свойство DisplayWidth и заменить размер на 35.
2. Так же поменять свойства других полей таблицы.
3. Для полей логического типа в свойстве DisplayValues можно написать варианты для значений True и False. В поле SSpec в этом свойстве написать «Математика;Физика» (без пробела, разделяя «;»). Получиться как показано на рисунке.
4. Если возникнет необходимость можно скрыть любое поле, выбрав его и в свойстве Visible инспектора объектов установив значение false.
После выполненных действий сетка DBGrid 1 будет выглядеть так:
Ввод данных:
Компоненты для организации доступа к таблицам БД позволяют выполнять всевозможные операции с наборами данных: добавлять или удалять записи, перемещаться по ним. При этом следует иметь в виду, что в любой момент времени доступна для выполнения конкретных действий только одна запись, называемая текущей. В этой лабораторной работе рассматриваются наиболее часто используемые методы компонентыTable.
Основные методы для организации доступа компоненты Table:
· Append– добавить новую запись в конец таблицы.
· Delete – удалить текущую строку.
· Edit– перейти в режим редактирования. После этого можно изменять значения полей.
· Insert– вставить новую строку в таблицу.
· Post– принять все изменения.
· Refresh– обновить информацию о данных.
· UpdateRecord– обновить текущую запись.
1. Откроем созданное приложение.
2. Разместим на форме три компоненты SpeedButton из палитры Additional. Одна из кнопок будет добавлять запись, другая – изменять данные в записи, третья – удалять. Назовем их соответственно.
3. Создадим новую форму, которая будет вызываться нажатием кнопки «Добавить». На форме расположены 4 компоненты Edit, компонент DateTimePicker с закладки Win 32, компонент CheckBox и компонент RadioGroup .
4. Текст процедуры для события OnClick кнопки «Добавить» на форме Студенты:
Комметарий: в строке Form 1. Table 1. Insert вызывается метод, который допускает вставку новой строки в таблицу, которая находится на форме «Студенты». Без вызова этого метода дальнейшая работа по вставке записи в таблицу невозможна. Запись Form 1. Table 1. FieldByName (' SFio '). Text := Edit 1. Text означает, что текст, который находится в Edit 1 по нажатии кнопки будет перенесен в таблицу на форме «Студенты» в новую запись в текстовое поле ФИО. Остальные записи в процедуре работают аналогичным образом. Запись if
form 1. Table 1. Modified
then
form 1. Table 1. Post сохраняет изменения в таблице. Close – закрывает форму «Добавление записи».
6. По нажатии кнопки Cancel осуществляется выход. То же и на форме «Редактирование записи».
7. Текст процедуры для события OnClick при нажатии клавиши «Удалить» на форме Студенты:
Компоненты, отражающие информацию, делятся на две категории – те, которые не связаны с таблицами БД, и компоненты, связанные с таблицами и обменивающиеся с ними информацией. В первую категорию входят обычные компоненты Delphi. Компоненты второй категории расположены на странице Data
Controls. Почти каждая из них имеет аналог среди обычных компонент; основные отличия заключаются в том, что они могут работать с данными, хранящимися в БД. К этой группе относится компонента DBEdit, которая используется для ввода текстовой однострочной информации.
Чтобы компонент DBEdit видел данные из поля таблицы, следует указать в свойствах:
· DataSource – источник данных;
· DataField – поле для редактирования.
Этот компонент с заданными уже свойствами может появиться автоматически при перетаскивании имени поля из окна редактора полей.
1. Создадим новую форму: Редактирование записи.
2. В случае перетаскивания поля логического типа, на форме автоматически устанавливается компонента DBCheckBox, что не всегда удобно.
2.1. Установим на форму компоненту DBRadioGroup с закладки Data Control.
2.2. В свойстве DataSource укажем DataSource1.
2.3. В свойстве DataField укажем SSpec.
3. Текст процедуры для события OnClick при нажатии клавиши «Изменить» на форму Студенты:
begin
Form3.ShowModal // вызов Form3
end;
4. Текст процедуры для события OnClick при нажатии клавиши «Сохранить» на форму Редактирование:
begin
if form1.Table1.Modified
then form1.Table1.Post; // все
изменения
в
таблице
сохраняются
close ;
end;
5. Пользователь имеет возможность редактировать записи в таблице напрямую. Чтобы это предотвратить используется свойство компоненты DBGrid dgEditing. Нужно выделить DBGrid 1 и в свойстве Options ► dgEditing инспектора объектов поставить false.