- •Базы данных.
- •Проектирование базы данных
- •Шаги проектирования базы данных
- •Создание таблиц базы данных
- •Компоненты для работы с бд
- •Создание простейшего приложения
- •Режимы наборов данных
- •Команды навигации
- •Визуальные компоненты для работы с данными
- •Обзор компонент
- •Работа с полями таблицы
- •Создание статических полей
- •Задание ограничений на вводимые значения
- •Компонент Table
- •Сортировка и фильтрация
- •Поиск записей
- •If Table1.Locate ('Number',123,[]) {опции поиска отключены}
- •If not Table1.FindKey([EditGroup.Text,EditName.Text]){ищем соответствующие значения}
- •Связывание таблиц
- •Компонент Query
- •Чтение данных из таблиц (select)
- •Модификация записей (update, insert, delete)
- •Insert into Tovar.Db (Name, Price, Count) values (’Яблоки’, 20, 10)
- •Некоторые функции языка sql
- •Компоненты для построения отчетов
- •Основные свойства компоненты QuickRep
- •Методы компоненты QuickRep:
- •Свойства компоненты qrBand:
- •Создание простого отчета
- •Включение выражений в отчет
- •Отображение системной информации
- •Группировка данных в отчете
- •Построение отчета для связанных наборов данных
- •Комбинированный отчет
- •Упражнения:
-
Модификация записей (update, insert, delete)
Для редактирования значений полей группы записей, отвечающих заданному условию отбора, применяется оператор UPDATE:
UPDATE <имя таблицы> SET
<имя поля> = <выражение>
…
<имя поля> = <выражение>
[WHERE <условие отбора>]
Если условия отбора не задано, то изменятся поля всех записей таблицы. Чтобы изменить одно поле <условие отбора> нужно задавать по ключевым полям. Пример изменения телефона у первой записи (предполагается что Code - ключевое поле):
UPDATE Person.db SET Tel = 271212 WHERE Code=1
Пример изменения всех записей:
UPDATE Tovar.db SET Price = Price*1.1
Добавление записей реализуется оператором INSERT:
INSERT INTO <имя таблицы>
[(<список полей>)]
VALUES (<список значений>)
Если <список полей> не указан, то <список значений> должен содержать значения всех полей. Пример:
Insert into Tovar.Db (Name, Price, Count) values (’Яблоки’, 20, 10)
Оператор INSERT позволяет также добавлять записи из других таблиц:
INSERT INTO <имя таблицы>
[(<список полей>)]
<оператор SELECT>
Пример добавления товара на склад из таблицы закупок:
INSERT INTO Sclad.db (Name, Price, Count)
SELECT Name, SUM(Prise*Count)/ SUM(Count), SUM(Count)
FROM Sales.db GROUP BY Name
Для удаления группы записей используется оператор DELETE:
DELETE FROM <имя таблицы>
[WHERE <условие отбора>]
В результате его выполнения из указанной таблицы удаляются все записи, удовлетворяющие <условию отбора>. Пример:
DELETE FROM Sclad.db WHERE Count = 0
Отметим, что если с записями этой таблицы связаны записи другой таблицы, то может потребоваться их предварительное удаление.
-
Некоторые функции языка sql
Агрегатные (или статистические) функции:
-
AVG – среднее значение;
-
MAX – максимальное значение;
-
MIN - минимальное значение;
-
SUM – сумма;
-
COUNT – количество записей.
Функции работы со строками
-
UPPER(Str) – преобразование символов к верхнему регистру;
-
LOWER(Str) - преобразование символов к нижнему регистру;
-
TRIM(Str) – удаление пробелов в начале и конце строки;
-
SUBSTRING(Str FROM n1 TO n2) – копирование из строки символов Str, начиная с номера n1 и заканчивая номером n2;
-
Str1 || Str2 – объединение строк;
-
EXTRACT (<элемент> FROM <выражение>) – извлечение из выражения содержащего дату или время соответствующего <элемента> = YEAR, MONTH, DAY, HOUR, MINUTE или SECOND.
-
Отчеты
Отчетом называется печатный документ, в котором содержится информация, полученная в результате выполнения SQL-запроса. В Delphi для построения отчетов применяется генератор отчетов QuickReport. Большое количество специальных компонентов позволяют создавать самые разнообразные отчеты. Но можно выводить данные в обычный текстовый документ или HTML-документ, вставляя теги при выводе в файл типа TextFile, или в Excel или Word-документ, используя OLE-технологии.
-
Компоненты для построения отчетов
На странице QReport располагается более 20 компонентов, применяемых для построения отчетов:
QuickRep - определяет поведение отчета в целом.
QRBand – представляет собой специальную панель для расположения данных, заголовков, титула отчета и др. С его помощью реализуются такие области отчета, как:
-
область заголовка отчета
-
область заголовка страницы
-
область заголовка группы
-
область названий столбцов отчета
-
область детальных данных
-
область подвала группы
-
область подвала страницы
-
область подвала отчета
QRStringBand – имеет то же назначение, что и QRBand, но, в отличии от него, имеет встроенный список строк Items, содержимое которого будет видно при печати или предварительном просмотре, если на нем помещен компонент QRExpr.
QRExpr – применяется для вывода значений, являющихся результатом вычисления выражений по введенным формулам с помощью встроенного редактора формул.
QRSubDetail – представляет собой область, в которой располагаются данные подчиненной таблицы при реализации в отчете связи между таблицами БД.
QRChildBand – выполняет функции дочерней полосы, которая привязывается к родительской полосе и служит для ее расширения. Любая полоса может быть определена как родительская путем установки ее свойства HasChild в True.
QRGroup – применяется для группировки данных в отчете.
QRLabel – дает возможность разместить в отчете произвольную текстовую строку, например надписи столбцов.
QRDBText – используется для вывода в отчете содержимого поля набора данных.
QRSysData – служит для отображения в отчете системных значений: дата, время, номера страниц и т.д.
QRMemo – позволяет вставить в отчет многострочный текст.
QRExprMemo – используется для создания многострочных вычисляемых полей.
QRRichText – дает возможность добавить в отчет текст в формате RTF.
QRShape – применяется для отображения в отчете простых геометрических фигур: квадрат, круг и т.д.
QRImage – служит для вывода в отчете графической информации, источником которой является поле набора данных.
QRPreview – используется для создания нестандартных окон предварительного просмотра.
QRChart – служит для добавления в отчет графиков и диаграмм.