
- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Лабораторная работа №21
Тема: Использование компонента Query
Цель работы: Изучить использование компонента Query при работе с БД в Delphi.
Время работы: 2 учебных часа.
Правила по ТБ: Общие.
Оборудование рабочего места: Практикум, ПК.
Программное обеспечение: Windows, MS Office, Delphi
Вопросы входного контроля:
Расскажите о работе компонента Table,
Перечислите визуальные компоненты доступа к базам данных, которые вы использовали.
Перечислите невизуальные компоненты доступа к базам данных, которые вы использовали.
Расскажите о методе AsInteger и какие варианты аналогичных методов есть у класса Table.
Расскажите о методе Next First и какие варианты аналогичных методов есть у класса Table.
Опишите, как определить количество записей у базы данных не просматривая ее
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Компоненты Delphi, обеспечивающие доступ к БД
Имеются несколько основных компонентов (объектов), которые используют постоянно для доступа к БД. Эти объекты могут быть разделены на три группы:
1.Невизуальные: Table, Query, TDataSet, TField
2.Визуальные: DBGrid, DBNavigator, DBEdit, DBMemo.
3. Связующие: TDataSource
Первая группа включает невизуальные классы, которые используются для управления таблицами и запросами. Эта группа сосредотачивается вокруг компонент типа Table, Query, и классами TDataSet и TField. В Палитре компонент они расположены на странице Data Access и BDE.
Вторая группа классов - визуальные, которые показывают данные пользователю, и позволяют ему просматривать и модифицировать их. Эта группа классов включает компоненты типа DBGrid, DBNavigator, DBEdit, DBMemo, DBImage и DBComboBox. В Палитре Компонентов они расположены на странице Data Controls.
Имеется и третий тип классов, который используется для того, чтобы связать предыдущие два типа объектов. К 3 типу относится только невизуальный компонент DataSource.
При организации работы с БД следует иметь в виду определенный порядок связи между этими компонентами и БД:
БД <-> BDE <-> Невизуальный компонент <-> Связующий компонент <-> Визуальный компонент.
В Delphi имеется специальный компонент набора данных — Query, являющийся аналогом Table, но позволяющий работать с SQL. Общие правила синтаксиса SQL очень просты. Язык SQL не чувствителен к регистру.
Для подключения БД откройте новое приложение Delphii, перенесите на форму компонент Query со страницы библиотеки Data Access (BDE) и установите его свойство DatabaseName равным имени созданной вами базы данных (Student). Поместите на форму компонент DataSource со страницы Доступ к данным (Data Access). Его свойству Name соответствует Datasource1, а свойству DataSet задайте Queryl. Поместите также на форму компонент DBGrid (Управление данными – Data Control) и в его свойстве DataSource задайте DataSourcel.
Теперь ваше тестовое приложение для экспериментов с языком SQL готово. Операторы SQL можем писать в свойстве SQL компонента Queryl, а чтобы увидеть результаты выполнения написанного оператора, надо будет устанавливать значение свойства Active компонента Queryl в true. Это надо будет делать после записи каждого нового оператора.
Особенности набора данных Query
Компонент Query представляет собой набор данных, записи которого формируются в результате выполнения SQL-запроса. Набор данных, возвращаемый компонентом Query, основан на реляционном способе доступа к данным. При работе с удаленными БД следует применять именно набор данных Query.
В отличие от компонента Tаblе, набор данных Query может включать в себя записи более чем одной таблицы БД.
Текст запроса, на основании которого в набор данных отбираются записи, содержится в свойстве SQL типа Tstrings. Запрос включает в себя команды на языке SQL и выполняется при открытии набора данных. Запрос также называют SQL-запросом или SQL-программой.
При формировании запроса на этапе разработки приложения можно использовать текстовый редактор (рис. 2.5), вызываемый через Инспектор объектов двойным щелчком кнопки мыши при размещении указателя на поле значения свойства SQL.
SQL-запрос также можно конструировать и модифицировать динамически, внося изменения в его текст (значение свойства SQL компонента Query) по ходу работы приложения.
Пример. Приложение — редактор SQL-запросов.
Рассмотрим приложение — простейший редактор, позволяющий подготавливать и выполнять SQL-запросы. Кроме визуальных компонентов форма содержит два компонента доступа к данным Query1 и DataSource1, которые при выполнении приложения на экране не видны.
Редактирование SQL-запроса осуществляется с помощью элемента Memo1. Набранный в поле ввода запрос выполняется при нажатии кнопки Button1 с заголовком Выполнить. Результат выполнения запроса отображается в компоненте DBGrid1.
При наличии в тексте SQL-запроса ошибки генерируется исключительная ситуация и выдается сообщение об ошибке, а результат запроса оказывается не определен. При этом набор данных Query1 автоматически закрывается.
Значения свойств DataSet источника данных DataSource1 И DataSource сетки DBGrid1, с помощью которых организуется взаимодействие компонентов Query1, DataSource1 И DBGrid1, устанавливаются при создании формы. В последующих примерах приложений значения этих свойств задаются через Инспектор объектов, и соответствующие операторы, присваивающие свойствам необходимые значения, в модуле формы отсутствуют.
Ниже приведен код модуля uSQLEdit формы Form1 приложения.
unit uSQLEdit;;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, Grids, DBGrids, Db, DBTables;
Type
TForm1 = class (TForm)
Memo1: TMemo;
DataSource1: TDataSource;
Query1: TQuery;
DBGrid1: TDBGrid;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
Public
{ Public declarations }
end;
var
Form1: TForml;
implementation
{$R *.DFM}
procedure TForml.FormCreate (Sender: TObject);
begin
DataSourcel.DataSet := Queryl;
DBGridl.DataSource := DataSourcel;
end;
procedure TForml.ButtonlClick (Sender: TObject);
begin
Queryl.Close;
Queryl.SQL.Assign (Memol.Lines);
Query1.Open;
end;
end.
В приведенном примере метод Assign выполняет присваивание одного объекта другому, при этом объекты должны иметь совместимые типы. Применительно к списку строк (класс Tstrings), которому принадлежат свойства SQL компонента Query1 и Lines компонента Memo1, подобное присваивание означает копирование информации из одного списка в другой с заменой содержимого последнего. Если размеры списков (число элементов) не совпадают, то после замены количество элементов заменяемого списка становится равным числу элементов копируемого списка.
Компонент Query обеспечивает выполнение SQL-запроса и является набором данных, который образуется на основе этого запроса. Формирование набора данных осуществляется при активизации компонента Query вызовом метода open или заданием свойству Active значения True. В ряде случаев при выполнении SQL-запроса в получении набора данных нет необходимости, например, при удалении, вставке или модификации записей (средствами языка SQL). В этом случае предпочтительнее выполнять запрос компонента Query не его открытием, а вызовом метода ExecSQL. При работе в сети метод ExecSQL обеспечивает требуемую модификацию набора данных, не передавая в вызывающее приложение (компьютер) записи набора данных, что заметно снижает нагрузку на сеть.
Для локальных БД вместо компонента Table также можно использовать компонент Query. Если присвоить свойству SQL значение "SELECT * FROM NameTableBD", а свойству RequestLive константу True, то набор данных Query будет похож на набор данных Table. В приведенном значении NameTableBD является именем таблицы БД, которое для компонента Table задается в свойстве Tаblеnаmе. Однако набор данных Query не имеет системы индексов, в отличие от набора данных Table, поэтому к Query неприменимы методы, опирающиеся на индексацию.
СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Изучить теоретические сведения.
Создть новый проект.
Подключить таблицу (Созданную вами) с помощью Query, создать интерфейс для отображения ее данных с использованием сетки строк, строку для ввода ключа поиска, кнопки для реализации параметрического и динамического запроса к БД.
Проверить работу всего проекта.
Реализовать с помощью SQL статический запрос на языке SQL.
Реализовать с помощью SQL Monitor статический запрос на языке SQL.
Реализовать параметрический запрос на языке SQL.
Продемонстрировать преподавателю работу разработанного образца проекта.
Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.
Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.
Вопросы выходного контроля:
Расскажите о работе с компонентов Query, при подключении БД.
Назовите отличия при использовании Table и Query.
Перечислите визуальные компоненты доступа к базам данных, которые вы использовали.
Перечислите невизуальные компоненты доступа к базам данных, которые вы использовали.
Расскажите, какие невизуальные компоненты доступа к БД вы знаете.
Расскажите, какие визуальные компоненты доступа к БД вы знаете.