Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_РиЭУБД.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.09 Mб
Скачать

Лабораторная работа №11 Компонент tadoQuery и его свойства

Цель работы:

- изучить свойства компонента ADOQuery;

Теоретическая часть

Изучите теоретический материал, загрузив из папки файл ADOQuery.pps

Практическая часть

Ход работы

  1. Создайте в своей папке на жестком диске Student папку с названием «ЛР_11».

  2. Скопируйте созданную в предыдущих лабораторных работах заполненную базу Books.dbf.

  3. Разместите на Форме следующие компоненты и установите их свойства, согласно Таблице 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 рублей

  1. Запишите обработчик события 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 рублей.

  1. На вкладке ADO найдите компонент ADOQuery и расположите его на форме. Примерный внешний вид формы к этому моменту приведен на Рис.11.1.

  2. Установите свойства компонента ADOQuery1 в соответствии с Таблицей 11.2.

Таблица 11.2. Свойства компонента ADOQuery1

ADOQuery1

Connection

ADOConnection1

SQL

Select * from Books where STOIMOST<500

  1. Напишите обработчик события 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;

  1. Сохраните проект в папке 11.1.

  2. Запустите проект на выполнение. При появлении сообщения об ошибке нажмите ОК и выберите команду RunProgram Reset (Ctrl+F2).

  3. Выйдите из среды Delphi 7, и, запустив exe-файл, проверьте работоспособность приложения.

Работать с объектом TStrings также может компонент TMemo.

Рассмотрим пример демонстрации работы с компонентом TMemo, в котором запишем следующий запрос:

Select KNIGA, AVTOR, MAGAZIN, STOIMOST from Books where (STOIMOST>=200)

  1. Видоизмените форму, приведя ее к виду, как на Рис.11.2, - добавьте компонент Memo и кнопку, назвав ее «Выполнить».

  2. В свойстве Lines компонента Memo впишите запрос:

Select KNIGA, AVTOR, MAGAZIN, STOIMOST from Books where (STOIMOST>=200)

З десь происходит запрос на показ книг, стоимость которых выше или равна 200 рублей, причем требуется показать не всю таблицу целиком, а лишь поля «Книга», «Автор», «Магазин» и «Стоимость».

Важно, чтобы запрос был записан в одну строку, поэтому при необходимости увеличьте размеры компонента Memo.

  1. Для обработчика события 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;

  1. Сохраните проект в папке 11.2.

  2. Запустите проект на выполнение. При появлении сообщения об ошибке нажмите ОК и выберите команду RunProgram Reset (Ctrl+F2).

  3. Выйдите из среды Delphi 7, и, запустив exe-файл, проверьте работоспособность приложения.