- •Задания и методические указания к выполнению лабораторных работ
- •Содержание
- •Лабораторная работа №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 Использование доменов и хранимых процедур
- •Список рекомендуемой литературы
Лабораторная работа №11 Компонент tadoQuery и его свойства
Цель работы:
- изучить свойства компонента ADOQuery;
Теоретическая часть
Изучите теоретический материал, загрузив из папки файл ADOQuery.pps
Практическая часть
Ход работы
Создайте в своей папке на жестком диске Student папку с названием «ЛР_11».
Скопируйте созданную в предыдущих лабораторных работах заполненную базу Books.dbf.
Разместите на Форме следующие компоненты и установите их свойства, согласно Таблице 11.1:
ADOConnection1 (вкладка ADO);
ADOTable1 (вкладка ADO);
DataSource1 (вкладка Data Access);
DBGrid1 (вкладка Data Control);
DBNavigator1 (вкладка Data Control);
Button1 (вкладка Standard).
Таблица 11.1. Свойства компонентов приложения «Компонент TADOQuery»
Компонент |
Свойство |
Значение |
|
Form1 |
Caption |
Компонент TADOQuery |
|
Color |
По своему усмотрению |
||
Font |
По своему усмотрению |
||
BorderStyle |
bsSingle |
||
BorderIcons |
biMinimize |
False |
|
biMaximize |
False |
||
ADOConnection1 |
ConnectionString |
Установите связь с каталогом (папкой) таблиц баз данных Books |
|
LoginPrompt |
False |
||
DataSource1 |
DataSet |
ADOTable1 |
|
ADOTable1 |
Connection |
ADOConnection1 |
|
TableName |
Books |
||
DBGrid1 |
DataSource |
DataSource1 |
|
DBNavigator1 |
DataSource |
DataSource1 |
|
Button1 |
Caption |
Показать книги дешевле 500 рублей |
|
Запишите обработчик события OnCreate, выполняющегося при запуске приложения:
procedure TForm1.FormCreate(Sender: TObject);
begin
adotable1.open; //открытие таблицы при запуске приложения
DBGrid1.Columns[0].Title.caption:='Издательство'; //русификация столбцов таблицы
.... //русификацию остальных столбцов таблицы выполните самостоятельно
e
nd;
Теперь начнем рассматривать непосредственно компонент ADOQuery и его свойства.
1. Свойство sql
Свойство SQL используется для хранения SQL-запроса. Свойство SQL имеет тип TStrings. Объект TStrings представляет собой список строк, и похож на массив. Тип данных TStrings имеет в своем арсенале команды добавления строк, их загрузки из текстового файла и обмена данными с другим объектом TStrings.
Рассмотрим запрос для работы с таблицей Books, в котором запрашиваются книги стоимостью дешевле 500 рублей.
На вкладке ADO найдите компонент ADOQuery и расположите его на форме. Примерный внешний вид формы к этому моменту приведен на Рис.11.1.
Установите свойства компонента ADOQuery1 в соответствии с Таблицей 11.2.
Таблица 11.2. Свойства компонента ADOQuery1
-
ADOQuery1
Connection
ADOConnection1
SQL
Select * from Books where STOIMOST<500
Напишите обработчик события OnClick по щелчку на кнопке «Показать книги дешевле 500 рублей»:
procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet:=ADOQuery1; {устанавливаем источник данных ADOQuery1}
try {перехватчик ошибок}
ADOQuery1.Open;{Выполняем запрос и открываем набор данных}
DBGrid1.Columns[0].Title.caption:='Издательство';
....
except {секция обработки ошибок}
On e: EDatabaseError do {e – новый дескриптор ошибки}
messagedlg(e.Message,mtError,[mbok],0); {показываем свойство Message объекта e}
end; end;
Сохраните проект в папке 11.1.
Запустите проект на выполнение. При появлении сообщения об ошибке нажмите ОК и выберите команду Run → Program Reset (Ctrl+F2).
Выйдите из среды Delphi 7, и, запустив exe-файл, проверьте работоспособность приложения.
Работать с объектом TStrings также может компонент TMemo.
Рассмотрим пример демонстрации работы с компонентом TMemo, в котором запишем следующий запрос:
Select KNIGA, AVTOR, MAGAZIN, STOIMOST from Books where (STOIMOST>=200)
Видоизмените форму, приведя ее к виду, как на Рис.11.2, - добавьте компонент Memo и кнопку, назвав ее «Выполнить».
В свойстве Lines компонента Memo впишите запрос:
Select KNIGA, AVTOR, MAGAZIN, STOIMOST from Books where (STOIMOST>=200)
З
десь
происходит запрос на показ книг, стоимость
которых выше или равна 200 рублей, причем
требуется показать не всю таблицу
целиком, а лишь поля «Книга», «Автор»,
«Магазин» и «Стоимость».
Важно, чтобы запрос был записан в одну строку, поэтому при необходимости увеличьте размеры компонента Memo.
Для обработчика события OnClick, происходящего при нажатии на кнопку «Выполнить», запишите следующий код:
procedure TForm1.Button2Click(Sender: TObject);
begin
datasource1.DataSet:=ADOQuery1;
ADOQuery1.Close; {Деактивируем запрос в качестве одной из мер предосторожности}
ADOQuery1.SQL.Clear; {Стираем любой предыдущий запрос}
If Memo1.Lines[0]<>' ' {Проверяем на предмет пустого ввода, между апострофами пробел}
Then
ADOQuery1.SQL.Add(Memo1.Text) {назначаем свойству SQL текст из Memo}
Else begin
MessageDlg('Не был введен SQL-запрос', mtError, [mbOK],0);
exit;
end;
try {перехватчик ошибок}
ADOQUery1.Open;{Выполняем запрос и открываем набор данных}
DBGrid1.Columns[0].Title.caption:='Книга';
DBGrid1.Columns[1].Title.caption:='Автор';
DBGrid1.Columns[2].Title.caption:='Магазин';
DBGrid1.Columns[3].Title.caption:='Цена';
except {секция обработки ошибок}
On e: EDatabaseError do {e – новый дескриптор ошибки}
messagedlg(e.Message,mtError,[mbok],0); {показываем свойство Message объекта e}
end;
end;
Сохраните проект в папке 11.2.
Запустите проект на выполнение. При появлении сообщения об ошибке нажмите ОК и выберите команду Run → Program Reset (Ctrl+F2).
Выйдите из среды Delphi 7, и, запустив exe-файл, проверьте работоспособность приложения.
