Лабораторные работы по базам данных в Delphi
Лабораторная работа, 13 Декабря 2010, автор: пользователь скрыл имя
Описание работы
Цель работы:
1.Ознакомить с утилитой Database Desktop.
2.Усвоить процесс создания и редактирования таблиц с помощью Database Desktop.
Database Desktop - это утилита, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Исполняемый файл утилиты называется DBD32.EXE. Для запуска Database Desktop просто дважды щелкните по ее иконке.
Файлы: 1 файл
Лабораторные работы по базам данных.doc
— 1.41 Мб (Скачать файл)Компоненты управления данными с палитры Data Contorls:
TDBGrid - отображает содержимое таблицы БД в виде сетки, в котором столбцы соответствуют полям, а строки записям таблицы.
Компонент имеет следующие свойства:
- Data Source – содержит ссылку на компонент типа TDataSource, служащий источником данных;
- Editor Mode – если содержит true, пользователь может редактировать ячейку после нажатия клавиши F2 или Enter. Игнорируется, если свойство Option включает значение goEditing или goAlwaysShowEditor;
- Option – определяет вид и поведение компонента;
- dgEditing – разрешает изменение набора данных;
- dgAlwaysShowEditor – автоматически переводит столбец в режим редактирования при его выделение;
- dgTitles – показывает заголовки столбцов;
- dgIndicator – показывает индикатор текущей строки в самом левом фиксированном столбце;
- dgColumnResize – разрешает пользователю вручную изменять ширину столбцов;
- dgColLines – показывает разделяющие вертикальные линии;
- dgRowLines – показывает разделяющие горизонтальные линии;
- dgTabs – разрешает переход от столбца к столбцу с помощью клавиши Tab;
- dgRowSelect – разрешает выделение цветом всей выбранной строки;
- dgAlwaysShowSelection – выделение текущей строки сохраняется, если компонент теряет фокус ввода;
- dgConfirmDelete – удаление строки должно подтверждаться;
- dgCancelOnExit – если пользователь вставил пустую строку и покинул ее, она не помещается в набор данных;
- dgMultiSelect – разрешает множественный выбор строк.
TDBNavigator - осуществляет перемещение и редактирование записей (вид и назначение кнопок указаны в пункте DBNavigator). С помощью свойства DataSource компонент связывается с нужным источником данных ТDataSource – это все, что необходимо для его нормальной работы. Свойство ConfirmDelete управляет отображением диалогового окна с просьбой подтвердить удаление записи (значение True этого свойства выводит окно).
Создание приложения:
- Запустить Delphi.
- В свойстве Caption изменить имя формы на Студенты.
- Установить на форму компоненту TTable.
- Определить следующие свойства компоненты Table1.
- определить псевдоним - выбрать в свойстве DatabaseName инспектора объектов псевдоним «Student».
- задать имя таблицы - выбрать в свойстве TableName таблицу Student.
- активизировать таблицу - установить в свойстве Active значение true (это будет возможно после выполнения пункта 4).
- Разместить на форму компоненту DataSource с закладки Data Access и в свойстве DataSet инспектора объектов выбрать компоненту Table1.
- Расположить на форме компоненту DBGrid с закладки Data Controls и в свойстве DataSource выбрать DataSource1.
Если вы внесли несколько записей, то форма Студенты примет вид:
Редактор полей:
Для управления отображением данных таблицы используют специальный редактор полей - Editor Field.
Для вызова Editor Field следует:
- Дважды щелкнуть по Table1.
- Для открывшегося окна вызвать контекстное меню и выбрать пункт Add All Field, если необходимо добавить все поля таблицы.
- Add Field для выбора отдельного поля.
Редактор
полей имеет следующие
- DisplayLabel – задает имя полю;
- DisplayWidth – определяет количество символов, которое будет выводится в поле;
Определим свойства для полей таблицы Student.db.
- Выбрать в окне редактора полей таблицы поле SFio и в свойстве DisplayLabel инспектора объектов изменить SFio на ФИО. Выбрать свойство DisplayWidth и заменить размер на 35.
- Так же поменять свойства других полей таблицы.
- Для полей логического типа в свойстве DisplayValues можно написать варианты для значений True и False. В поле SSpec в этом свойстве написать «Математика;Физика» (без пробела, разделяя «;»). Получиться как показано на рисунке.
- Если возникнет необходимость можно скрыть любое поле, выбрав его и в свойстве Visible инспектора объектов установив значение false.
После выполненных действий сетка DBGrid1 будет выглядеть так:
Ввод данных:
Компоненты для организации доступа к таблицам БД позволяют выполнять всевозможные операции с наборами данных: добавлять или удалять записи, перемещаться по ним. При этом следует иметь в виду, что в любой момент времени доступна для выполнения конкретных действий только одна запись, называемая текущей. В этой лабораторной работе рассматриваются наиболее часто используемые методы компоненты Table.
Основные методы для организации доступа компоненты Table:
- Append – добавить новую запись в конец таблицы.
- Delete – удалить текущую строку.
- Edit – перейти в режим редактирования. После этого можно изменять значения полей.
- Insert – вставить новую строку в таблицу.
- Post – принять все изменения.
- Refresh – обновить информацию о данных.
- UpdateRecord – обновить текущую запись.
- Откроем созданное приложение.
- Разместим на форме три компоненты SpeedButton из палитры Additional. Одна из кнопок будет добавлять запись, другая – изменять данные в записи, третья – удалять. Назовем их соответственно.
- Создадим новую форму, которая будет вызываться нажатием кнопки «Добавить». На форме расположены 4 компоненты Edit, компонент DateTimePicker с закладки Win32, компонент CheckBox и компонент RadioGroup.
- Текст процедуры для события OnClick кнопки «Добавить» на форме Студенты:
procedure
TForm1.SpeedButton1Click(
begin
Form2.ShowModal; //открывает форму «Добавление записи»
end;
- Текст процедуры для события OnClick кнопки «ОК» на форме Добавление записи:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Table1.Insert;
Form1.Table1.FieldByName('
Form1.Table1.FieldByName('
Form1.Table1.FieldByName('
Form1.Table1.FieldByName('
Form1.Table1.FieldByName('
if CheckBox1.Checked then
Form1.Table1.FieldByName('
else
Form1.Table1.FieldByName('
//при нажатии на флажок полю SStip (Стипендия) передается
//значение True, в противном случае вводится передается
//значение False
case RadioGroup1.ItemIndex of
0: Form1.Table1.FieldByName('
1: Form1.Table1.FieldByName('
end;
if form1.Table1.Modified
then form1.Table1.Post;
close;
Комметарий:
в строке Form1.Table1.Insert
вызывается метод, который допускает вставку
новой строки в таблицу, которая находится
на форме «Студенты». Без вызова этого
метода дальнейшая работа по вставке записи
в таблицу невозможна. Запись Form1.Table1.FieldByName('
- По нажатии кнопки Cancel осуществляется выход. То же и на форме «Редактирование записи».
- Текст процедуры для события OnClick при нажатии клавиши «Удалить» на форме Студенты:
procedure
TForm1.SpeedButton3Click(
begin
Table1.Delete //удаляет текущую запись в таблице
end;
Редактирование данных:
Компоненты, отражающие информацию, делятся на две категории – те, которые не связаны с таблицами БД, и компоненты, связанные с таблицами и обменивающиеся с ними информацией. В первую категорию входят обычные компоненты Delphi. Компоненты второй категории расположены на странице Data Controls. Почти каждая из них имеет аналог среди обычных компонент; основные отличия заключаются в том, что они могут работать с данными, хранящимися в БД. К этой группе относится компонента DBEdit, которая используется для ввода текстовой однострочной информации.
Чтобы компонент DBEdit видел данные из поля таблицы, следует указать в свойствах:
- DataSource – источник данных;
- DataField – поле для редактирования.
Этот компонент с заданными уже свойствами может появиться автоматически при перетаскивании имени поля из окна редактора полей.
- Создадим новую форму: Редактирование записи.
- В случае перетаскивания поля логического типа, на форме автоматически устанавливается компонента DBCheckBox, что не всегда удобно.
- Установим на форму компоненту DBRadioGroup с закладки Data Control.
- В свойстве DataSource укажем DataSource1.
- В свойстве DataField укажем SSpec.
- Текст процедуры для события OnClick при нажатии клавиши «Изменить» на форму Студенты:
begin
Form3.ShowModal //вызов Form3
end;
- Текст процедуры для события OnClick при нажатии клавиши «Сохранить» на форму Редактирование:
begin
if form1.Table1.Modified
then form1.Table1.Post; //все изменения в таблице сохраняются
close;
end;
- Пользователь имеет возможность редактировать записи в таблице напрямую. Чтобы это предотвратить используется свойство компоненты DBGrid dgEditing. Нужно выделить DBGrid1 и в свойстве Options► dgEditing инспектора объектов поставить false.