Авторизация



Просмотр SQL-запроса

Оценить
(0 голоса)

Поскольку Crystal Reports работает с базами данных SQL, ему время от времени приходится преобразовывать таблицы, поля, связи, сортировку и группировку, которые использовались для разработки отчета, в синтаксис SQL. SQL-операторы, генерируемые Crystal Reports, можно просматривать с помощью пункта Show SQL Query меню Database.

Ниже рассматривается вкладка Design отчета, который использует данные из образца базы XTREME, преобразованной из Microsoft Access в Microsoft SQL Server и доступной через ODBC. В этом отчете используются таблицы Orders (Заказы) и Customer (Клиенты), связанные посредством внутреннего соединения (Inner Join) и связи типа ‘равно” (=) по полю Customer ID. Переключатель Not Enforced был оставлен выбранным, но поля из обеих таблиц включены в отчет. Эксперт выбора записей Select Expert ограничивает отчет данными, касающимися только клиентов из США (USA). Обратите внимание на поля, помещенные в раздел подробностей. Также обратите внимание на то, что на основе поля Customer.Region была создана группа. Все сказанное проиллюстрировано на рис. 15.16.

Чтобы просмотреть SQL-оператор, который Crystal Reports создает для запроса, отправляемого базе данных, выберите в меню Database пункт Show SQL Query. Появится диалоговое окно Show SQL Query (Показать SQL-запрос), показанное на рис. 15.17.

Обратите внимание на различные части, или конструкции, SQL-оператора:

•    SELECT. Подбирает поля базы данных, необходимые для отчета (а именно для раздела подробностей, формул, группирования, выборки записей и так далее).

•    FROM. Выбирает таблицы для использования и конкретизирует тип соединения для связывания таблиц.

•    WHERE. Задает правило выбора записей.

•    ORDER BY. Требует, чтобы сервер SQL перед отправкой записей обратно клиенту сортировал их в порядке Customer.Region (для группы Region).

Просмотр SQL-запроса

Синтаксис SQL может меняться в зависимости от типа базы данных, на основе которой составляется отчет, и от того, используется ли для соединения с базой ODBC или прямые драйверы. Синтаксис для соединения таблиц также будет разным. И фактическое соединение таблиц может отображаться либо в конструкции FROM, либо в конструкции WHERE.

На рис. 15.18 представлено то же диалоговое окно Show SQL Query для “родного” соединения с базой данных Oracle, использующего “родной” драйвер (обратите внимание, помимо всего прочего, на то, что соединение и связывание выполняются в конструкции WHERE, а не в конструкции FROM).

А на рис. 15.19 показано то же окно Show SQL Query для базы данных XTREME. MBD в формате Microsoft Access, доступ к которой осуществляется через ODBC (запрос подобен запросу, отправляемому базе данных SQL Server, только конструкция WHERE не содержит символ “N” и для имен полей используется несколько иная пунктуация).

Хотя вы можете и не считать себя экспертом по базам данных и не иметь привычку создавать на лету огромные по размерам SQL-операторы, возможность просмотра SQL- запроса, отправляемого Crystal Reports серверу, имеет одно преимущество: она крайне полезна при возникновении проблем с производительностью или каких-нибудь других сложностей во время работы с отчетом.

Просмотр SQL-запроса

Просмотр SQL-запроса

Рис. 15.19. Диалоговое окно Show SQL Query при соединении с базой данных Microsoft Access через ODBC

Например, необходимо сделать так, чтобы большая часть, если не все условия выбора записей преобразовывались в конструкцию WHERE SQL-запроса. Это увеличит до предела количество операций, выполняемых сервером базы данных, и сведет к минимуму объем данных, которые придется обрабатывать Crystal Reports после того, как эти данные будут возвращены сервером. Вопросы, связанные с производительностью, рассматриваются далее в этой главе.

 

Команды SQL в Crystal Reports
Создание SQL-команды
Добавление параметра в команду
Использование SQL-команды в отчете
Выбор хранимых процедур

Добавить комментарий


Защитный код
Обновить