Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть2.doc
Скачиваний:
17
Добавлен:
24.08.2019
Размер:
892.42 Кб
Скачать

2.Запрос на добавление.

Этот запрос позволяет добавить запись в таблицу и присвоить значения ее полям. Конструкция запроса следующая:

INSERT INTO “<файл с таблицей>” (<поле>{,<поле>}) VALUES (<значение>{,<значение>}).

Рассмотрим подробнее отдельные части запроса:

файл с таблицей – имя файла с таблицей, в которую добавляется запись;

должен быть с расширением и содержать путь;

поле – имя поля, которому задается значение.

VALUES - зарезервированное слово, с которого начинается оператор

задания списка значений полям таблицы; значение – значение из списка

значений, которое задается соответствующему полю новой записи (их

количество должно равняться числу полей).

3.Запрос на обновление.

Этот запрос позволяет обновить значения в записях, которые соответствуют задаваемым условиям. Конструкция запроса следующая:

UPDATE “<файл с таблицей>”

SET <поле> = <значение>{, <поле> = <значение>}

[WHERE <условие отбора>]

Рассмотрим некоторые части запроса:

SET – зарезервированное слово, с которого начинается оператор, задающий список подставляемых значений; <поле> = <значение>{, <поле> = <значение>} – список полей и значений, которые задаются этим полям. [WHERE <условие отбора>] – оператор, задающий условие отбора тех записей, в которых следует обновить данные.

4.Запрос на удаление.

Этот запрос позволяет удалить из таблицы записи, удовлетворяющие заданным условиям. Конструкция запроса следующая:

DELETE FROM «<файл с таблицей>» [WHERE <условие отбора>].

Запрос к БД (Query)

Использование одной компоненты Table позволяет работать только с одной таблицей. Поэтому, когда необходимо работать с несколькими связанными таблицами, нужно создавать соответствующее число компонент Table. В этом случае целесообразно взять компоненту Query класса TQuery, являющегося потомком класса TDBDataSet. Эта компонента позволяет определить набор данных на основе нескольких таблиц с помощью SQL-запроса. Ее также удобно применять, когда таблица БД чрезмерно велика; в этом случае с помощью запроса можно ограничить набор рассматриваемых данных. Использование этой компоненты связано со знанием языка SQL.

Отметим сразу, что можно создать оператор Delphi SQL при помощи компоненты Query следующим образом:

  1. поместить на форму объекты Query, DataSource и связать их вместе;

  2. присвоить псевдоним объекта TQuery свойству DataBaseName;

  3. с помощью свойства SQL ввести указание SQL; 3) установить свойство Active в значение True.

Если каждый шаг был завершен правильно и если BDE установлено корректно, сетка должна будет содержать записи из указанной таблицы.

Delphi позволяет создавать SQL-запросы к БД как статические, в которых текст запроса остается неизменным, так и динамические (или запросы с параметрами). Динамические SQL-запросы содержат параметры, определенные в условиях отбора записей, которые в процессе выполнения программы могут изменяться. Таким образом, с помощью одного динамического запроса можно получать различные результаты при выполнении приложения. Синтаксическая конструкция динамических запросов аналогична статическим, за исключением того, что у них в секции, определяющей условия отбора записи, вместо значения записывается <параметр>, где параметр – имя параметра, вместо которого при выполнении приложения будет подставляться значение.

У класса TQuery отметим следующие наиболее важные свойства, которые он добавляет к наследуемым от классов TDataSet, TBDEDataSet и TDBDataSet:

Local – определяет расположение таблиц (True – локальные таблицы, False – таблицы на SQL-сервере); свойство только для чтения.

RequestLive – свойство логического типа (по умолчанию имеет значение False), определяет возможность изменять набор данных, полученный в результате выполнения запроса. Эта возможность имеется, если свойство имеет значение True, и у запросов, которые основаны на одной таблице и не используют сортировку и агрегатные функции. У остальных запросов результат доступен только для чтения независимо от значения данного свойства. В этих случаях можно посмотреть свойство CanModify для того чтобы увидеть, успешен ли запрос, если же нужно откорректировать таблицу с помощью запроса SQL, то следует использовать команду SQL Update.

SQL – свойство типа TStrings, определяет текст SQL-запроса, который используется при выполнении методов Open или ExecSQL.

UniDirectional – определяет направление перемещения курсора по набору данных, полученному в результате выполнения запроса.

UpdateMode – свойство типа TUpdateMode, определяет способ обновления записей из промежуточного буфера.

Следующие свойства компоненты TQuery используются в динамических SQL-запросах. Приведем некоторые из них:

DataSource – свойство типа TDataSource, определяет источник данных, значения полей которого используются как параметры для динамического запроса.

Params[Index] – свойство типа TParams, задает список элементов типа TParams, которые определяют параметры в динамическом запросе. С помощью этого свойства в редакторе значений параметров задаются начальные величины параметров. Чтобы перейти к редактору значений параметров запроса, нужно активизировать мышью значение этого свойства.

Класс TQuery добавляет к наследуемым от классов TDataSet, TBDEDataSet и TDBDataSet следующие методы (некоторые из них):

ExecSQL – процедура выполняет SQL-запрос.

Prepare – процедура посылает запрос в BDE для проверки синтаксиса и оптимизации. Рекомендуется выполнять для динамических запросов.

События, которые обрабатываются компонентой TQuery, полностью наследуются от класса TDataSet.

При подстановке переменных связи в динамический запрос программным методом с помощью свойства Params выполняются обычно следующие шаги:

  1. необходимо убедиться в том, что таблица закрыта;

  2. подготавливается объект TQuery с помощью выдачи команды Prepare;

  3. Свойству Params присваиваются конкректные значения;

4) Открывается запрос.

Компоненты Rave Reports и отчеты в приложении Delphi

На первый взгляд кажется, что в сфере создания и печати отчетов в Delphi7 произошла небольшая революция. Просматривая первый раз Палитру ком­понентов, вы не найдете в ней хорошо знакомой по прошлым версиям Delphi страницы QReport. Вместо старого генератора отчетов в состав Delphi 7 включен продукт Rave Reports 5.0 от фирмы Nevrona.

Компоненты QReport по-прежнему доступны разработчику..

Схема создания и внедрения отчетов в приложения Delphi прак­тически не изменилась. В Rave Reports имеются и глобальный класс отчета, и классы полос, и компоненты преобразования данных. Существенным но­вовведением можно считать только визуальную среду создания отчетов, что несомненно облегчит жизнь создателей отчетов и сделает их работу эффек­тивнее и приятнее.

В Delphi 7 генератор отчетов Rave Reports является основным средством создания отчетов и его компоненты устанавливаются в Палитре компонентов по умолчанию на странице Rave.

Генератор отчетов Rave Reports 5.0

Генератор отчетов Rave Reports 5.0 разработан фирмой Nevrona и входит в состав Delphi 7 в качестве основного средства для создания отчетов. Он состоит из трех частей:

  • ядро генератора отчетов обеспечивает управление отчетом и его предва­рительный просмотр, и отправку на печать. Исполняемый код ядра сер­вера включается в приложение Delphi, делая его полностью автономным при работе с отчетами на компьютере клиента;

  • визуальная среда разработки отчетов Rave Reports предназначена для разработки самих отчетов. Она позволяет добавлять к отчету страницы, размещать на них графические и текстовые элементы управления, под­ключать к отчетам источники данных и т. д. Отчеты сохраняются в фай­лах с расширением rav и должны распространяться совместно с прило­жениями, использующими их;

  • компоненты Rave Reports расположены на странице Rave Палитры ком­понентов Delphi. Они обеспечивают управление отчетами в приложении.

Генератор отчетов устанавливается при инсталляции Delphi в папку \Delphi7\Rave5. Исходные коды компонентов разработчикам в Delphi не­доступны.

Безусловно, визуальная среда разработки заметно упрощает процесс созда­ния отчетов и позволяет добиться лучших результатов меньшими усилиями, чем в генераторе отчетов Quick Report, который использовался в предыду­щих версиях Delphi. Тем не менее при первом знакомстве с продуктом за­метны и его недостатки. Система помощи оставляет тягостное впечатление не только своей крайней лаконичностью, но и фактическими ошибками.

Компоненты Rave Reports и их назначение

Компоненты для создания отчетов и управления расположены на странице Rave Палитры компонентов. Они делятся на следующие функциональные группы.

Компонент отчета TRvProject, с точки зрения приложения, и есть отчет. Он обеспечивает загрузку заранее созданного в визуальной среде Rave Reports отчета из файла с расширением rav.

Компонент управления отчетом TRvSystem обеспечивает работу приложе­ния с отчетом. Взаимодействуя с компонентом отчета, с одной стороны, и сервером отчета Rave Reports, с другой, этот компонент обеспечивает просмотр и печать отчетов.

Компоненты соединения с источниками данных предназначены для под­ключения различных источников данных к отчетам. При этом могут использоваться технологии доступа к данным ADO, BDE, dbExpress

Компоненты преобразования данных позволяют конвертировать отчеты из формата данных Rave Reports в другие форматы (текстовый, PDF, HTML, RTF), а также распечатывать или просматривать отчеты.

Отчет в приложении Delphi

Основой отчета является файл отчета с расширением rav. Он создается в визуальной среде разработки Rave Reports и может содержать произвольное число страниц. Каждая страница может быть оформлена графическими или текстовыми элементами или отображать данные из какой-либо базы дан­ных. Другими словами, файл RAV — это проект будущего отчета, содержа­щий общую информацию об отчете, оформление его страниц и правила их заполнения.

После создания проект отчета необходимо связать с приложением Delphi. Для этого используется компонент TRvProject (рис. 23.1). Этот компонент обеспечивает представление отчета в приложении.

Но этого недостаточно, чтобы просмотреть или напечатать отчет. Для вы­полнения этих операций используется код ядра генератора отчета, который автоматически прикомпилируется к исполняемому коду приложения при переносе на любую форму проекта компонентов TRvProject И TRvSystem. Для управления операциями печати и просмотра в проекте должен присутство­вать компонент TRvSystem (рис. 23.1).

Компоненты Rave Reports в приложении Delphi

Для того чтобы приложение Delphi могло выполнять функции печати отче­тов, разработчик должен выполнить следующий набор операций.

  1. При помощи визуальной среды разработки Rave Reports необходимо соз­дать проект отчета и сохранить его

  2. Перенести в проект приложения в Delphi компонент TRvProject и свя­зать его с файлом проекта отчета (см. ниже) при помощи свойства ProjectFile.

  1. Перенести в проект приложения в Delphi компонент TRvSystem и связать его с компонентом TRvProject. Для этого используется свойство Engine компонента TRvProject

  2. Написать код приложения, обеспечивающий просмотр и печать отчета (при необходимости и другие операции), используя методы компонента TRvProject

Конечно же, это наиболее простой способ включения отчета в приложения. Для решения более сложных задач необходимо изучить использованные выше компоненты более детально.

Визуальная среда создания отчетов

Визуальная среда создания отчетов входит в состав генератора отчетов Rave Reports 5.0. В отличие от генератора отчетов Quick Report, который поставлялся с Delphi 6 и более ранними версиями, визуальная среда в Rave Reports значительно облегчает самый трудоемкий этап в процессе создания отчета и его включения в состав приложения — постраничную разработку шаблона отчета.

Под шаблоном отчета мы подразумеваем совокупность страниц отчета с расположенными на них графическими и текстовыми элементами оформ­ления, а также свойствами и правилами создания отчета, сохраненными в файле с расширением rav.

Каждый файл RAV может включать несколько независимых шаблонов отче­тов. Затем эти шаблоны используются в компонентах TRvProject и служат основой для создания и печати отчетов в приложении.

Кроме этого, средствами визуальной среды шаблон отчета может быть под­ключен к различным источникам данных. При этом могут использоваться следующие технологии доступа к данным:

  • ADO;

  • dbExpress;

  • BDE.

Визуальная среда Rave Reports открывается из меню Tools | Rave Designer главного окна Delphi или при двойном щелчке на компоненте TRvProject. Исполняемый файл Rave.exe расположен в папке Delphi7\Rave5.

Подводя итог сказанному, мы можем выделить несколько основных задач, которые можно решать в визуальной среде создания отчетов:

□ загрузка, редактирование и сохранение шаблонов отчетов в файлах RAV;

  • создание структуры отчета и определение его основных свойств;

  • Разработка страниц отчета

  • Подключение к отчету источников данных

  • Генерация отчета на основе созданного шаблона, его предварительный просмотр или печать.