- •Задания и методические указания к выполнению лабораторных работ
- •Содержание
- •Лабораторная работа №1 Создание приложения по технологии bde на основе заимствованных таблиц
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №2 Разработка приложений с использованием технологии bde на основе создания собственных таблиц
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №3 Использование мастера конструирования форм
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №4 Отбор записей в таблице базы данных
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №5 Динамически создаваемые псевдонимы
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №6 Создание запросов с использованием компонента tQuery
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №7 Работа с одной таблицей. Создание подключения к базе данных
- •Лабораторная работа №8 Связь таблиц
- •Лабораторная работа №9 Метод GetTableNames
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №10 Сортировка записей
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №11 Компонент tadoQuery и его свойства
- •Теоретическая часть
- •Практическая часть
- •1. Свойство sql
- •2. Свойство Parameters
- •Лабораторная работа №12 Фильтрация записей
- •Теоретическая часть
- •Практическая часть
- •Задание для самостоятельного выполнения
- •Лабораторная работа №13 Создание отчетов
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №14 Управление транзакциями в sql Server
- •Лабораторная работа №15 Использование доменов и хранимых процедур
- •Список рекомендуемой литературы
Лабораторная работа №9 Метод GetTableNames
Цель работы:
- ознакомиться с методом GetTableNames;
Теоретическая часть
Изучите теоретический материал, загрузив из папки файл ADODataSet.pps
Практическая часть
Ход работы
Создайте в своей папке на жестком диске Student папку с названием «ЛР_9».
Из каталога «ЛР_8» скопируйте заполненную базу данных «Books.dbf» и заполненную базу данных «Izdatelstvo.dbf».
Разместите на форме следующие компоненты:
ADOConnection1 (вкладка ADO);
ADODataSet1 (вкладка ADO);
DataSource1 (вкладка Data Access);
DBGrid1 (вкладка Data Control);
DBNavigator1 (вкладка Data Control);
ListBox1 (вкладка Standard);
Button1, Button2, Label1, Label2 (вкладка Standard);
Image1 (вкладка Additional).
Примерный вид проектируемой формы представлен на Рис.9.1.
Установите свойства компонентов в соответствии с Таблицей 9.1.
Таблица 9.1. Свойства компонентов приложения «Метод GetTableNames»
Компонент |
Свойство |
Значение |
||
Form1 |
Caption |
Метод GetTableNames |
||
BorderStyle |
bsSingle |
|||
BorderIcons |
biMinimize |
False |
||
biMaximize |
False |
|||
Color |
По своему усмотрению |
|||
Button1 |
Caption |
Показать таблицы |
||
Button2 |
Caption |
Просмотреть выбранную таблицу |
||
Label1 |
Caption |
Список таблиц |
||
Label2 |
Caption |
Выбранная таблица |
||
ADOConnection1 |
ConnectionString |
Установите связь с каталогом (папкой) таблиц баз данных Books и Izdatelstvo |
||
LoginPrompt |
False |
|||
ADODataSet1 |
Connection |
ADOConnection1 |
||
DataSource1 |
DataSet |
ADODataSet1 |
||
DBGrid1 |
DataSource |
DataSource1 |
||
DBNavigator1 |
DataSource |
DataSource1 |
||
VisibleButtons |
nbFirst |
true |
||
nbPrior |
true |
|||
nbNext |
true |
|||
nbLast |
true |
|||
Остальные кнопки |
false |
|||
При нажатии на кнопку «Показать таблицы» имена таблиц должны отобразиться в списке ListBox1. Получить имена всех таблиц базы данных позволяет метод GetTableNames компонента ADOConnection1.
Выполните двойной щелчок на компоненте Button1 и запишите обработчик события OnClick:
procedure TForm1.Button1Click(Sender:TObject);
begin
AdoConnection1.GetTableNames(ListBox1.Items); //помещаем имена таблиц в список ListBox1
end;
При нажатии на кнопку «Просмотреть выбранную таблицу» таблица, выделенная в списке ListBox1, должна отобразиться в сетке DBGrid1, и в компоненте Image1 отобразиться соответствующий рисунок. Для этого используется компонент-набор ADODataSet1. Если в списке ListBox1 не выделена ни одна таблица, то необходимо вывести об этом соответствующее сообщение.
Выполните двойной щелчок на компоненте Button2 и запишите обработчик события OnClick:
procedure TForm1.Button2Click(Sender: TObject);
var i:byte;
fl:boolean;
begin
fl:=false;
if (listbox1.Items.Count=0) //если в списке таблицы отсутствуют,
then messagedlg('Нет таблиц!',mtInformation,[mbOK],0)
//то вывести об этом соответствующее сообщение
else //иначе
begin
for i:=listbox1.Items.Count-1 downto 0 do
if listbox1.Selected[i] then //если выбран элемент списка [i], то
begin
fl:=true;
adodataset1.Close; //закрываем набор данных
adodataset1.CommandText:=St+Listbox1.Items[i]; //формируем свойство
//CommandText из строки st и названия таблицы,
//которое берется из списка ListBox1
adodataset1.Open; //открываем набор данных, при этом
if listbox1.items[i]='Books' then //если название элемента списка Books, то
begin
image1.Picture.LoadFromFile('Books.wmf'); //загрузить картинку из файла ‘Books.wmf’
DBGrid1.Columns[0].Title.caption:='Издательство';
//русифицируем названия столбцов сетки
DBGrid1.Columns[1].Title.caption:='Книга';
DBGrid1.Columns[2].Title.caption:='Автор';
DBGrid1.Columns[3].Title.caption:='Тираж';
DBGrid1.Columns[4].Title.caption:='Обложка';
DBGrid1.Columns[5].Title.caption:='Магазин';
DBGrid1.Columns[6].Title.caption:='Цена';
end
else //иначе
if listbox1.items[i]='Izdatelstvo' then
//если название элемента списка Izdatelstvo, то
begin
image1.Picture.LoadFromFile('Izdatelstvo.bmp');
//загрузить картинку из файла 'Izdatelstvo.bmp'
DBGrid1.Columns[0].Title.caption:='Издательство';
//русифицируем названия столбцов сетки
DBGrid1.Columns[1].Title.caption:='Город';
DBGrid1.Columns[2].Title.caption:='Год создания';
DBGrid1.Columns[3].Title.caption:='Директор';
end
else //иначе
image1.Picture.LoadFromFile(''); //ничего на загружаем в компонент Image
end;
if (not fl) //если список таблиц отображается, но таблица не выделена,
then messagedlg('Таблица не выбрана!',mtinformation,[mbOK],0);
//то вывести соответствующее сообщение
end;
end;
Строка st получает значение “select * from “ во время создания формы. Выполните двойной щелчок по форме и напишите обработчик события OnCreate:
procedure TForm1.FormCreate(Sender: TObject);
begin
st:='select * from ' ;
end;
Для корректной работы приложения необходимо глобально объявить переменную st строкового типа:
var Form1:TForm;
st: string;
При закрытии приложения (уничтожении формы) ADO-набор необходимо закрыть. Запишите обработчик события OnDestroy для формы:
procedure TForm1.FormDestroy(Sender: TObject);
begin
adodataset1.Close;
end;
Сохраните проект.
Запустите проект на выполнение. При появлении сообщения об ошибке нажмите ОК и выберите команду Run → Program Reset (Ctrl+F2).
Выйдите из среды Delphi 7, и, запустив exe-файл, проверьте работоспособность приложения. Вид работающего приложения приведен на Рис.9.2 – 9.3.
