OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 

SQL-запросы к базам данных с помощью Crystal SQL Designer


Crystal Reports - это превосходная программа для манипуляции данными и их систематизации в корпоративной базе данных. Однако существуют ситуации, когда необходим инструмент для более быстрого и несложного создания запросов. Если вам нужен простой способ просмотра вашей базы данных, то не стоит волноваться о форматировании, шрифтах и т.д., просто обратите внимание на Crystal SQL Designer. Его упрощенный пользовательский интерфейс позволяет легко генерировать запросы к SQL базам данных.

Также как и в Crystal Reports, когда вы имеете несколько отчетов, основанных на одном и том же наборе данных, в SQL Designer вы сможете сохранить результаты вашего запроса, и на их основе создавать разнообразные отчеты.

В предыдущих версиях Crystal Reports, этот инструмент был известен как Crystal Query Designer.

Что такое Crystal SQL Designer

Большинство популярных баз данных, таких как Microsoft SQL Server, Oracle, Sybase и Informix, используют для запросов структурированный язык SQL. После того как сервер базы данных обработал SQL-запрос, он возвращает набор результатов (result set) в виде набора строк и столбцов данных. Конечно, специалисты по базам данных могут эффективно посылать запросы, непосредственно набирая SQL код. Однако подавляющее большинство пользователей не хотят специально изучать язык SQL для получения данных из своих баз. Crystal SQL Designer - это оригинальное средство создания запросов компании Seagate Software, предназначенное именно для таких пользователей. Выбирая с помощью простых табличных диалогов таблицы базы данных, поля, отбирая критерии выбора, и устанавливая условия сортировки, пользователи смогут тщательно отбирать данные из своих корпоративных баз данных без необходимости предварительного изучения SQL.

Так как Seagate также создал такое средство создания запросов, как Seagate Analysis, вы можете задаться вопросом: «Что же мне следует использовать для создания запросов к базе данных - Seagate Analysis, Crystal Reports, или SQL Designer?». Ответ в большей степени зависит от того, хотите ли вы быстро создавать запросы к базе данных, или вам необходимо подготовить результаты ваших запросов в виде оригинально созданной презентации.

Crystal SQL Designer будет установлен только в том случае, если вы специально отметите его установку при инсталляции Crystal Reports 8. В противном случае в меню кнопки Пуск(Windows)  будет отсутствовать подменю Seagate Crystal Reports Tools, запускающее SQL Designer. В этом случае вам необходимо будет вернуться в программу установки Crystal Reports 8 и инсталлировать Crystal SQL Designer.

Сравнение Crystal SQL Designer и Seagate Analysis

Выбор инструментальных средств был значительно усложнен с введением средств создания запросов и отчетов Seagate Analysis и OLAP. Crystal SQL Designer - это попытка Seagate объединить функциональность средств прямых запросов к базам данных, упрощенный генератор отчетов и рабочий лист OLAP- анализа.

Хотя Seagate Analysis и не имеет всех тех разнообразных возможностей создания отчетов, как Crystal Reports, он в основном дублирует (и во многих случаях, улучшая) возможности Crystal SQL Designer в создании запросов. В конечном итоге, какой именно продукт использовать - Seagate Analysis или Crystal SQL Designer, является исключительно делом вашего вкуса.

Для получения подробной информации относительно Seagate Analysis, обратитесь к одноименной стасье, опибликованной ранее в разделе Seagate Software.

Сравнение Crystal SQL Designer и Crystal Reports

Часто спрашивают: «Зачем пользоваться SQL Designer если можно просто создать отчет в Crystal Reports получив те же данные?». Хотя эта точка зрения и имеет смысл, в определенных ситуациях предпочтительным оказывается более простое средство создания запросов без применения таких возможностей Crystal Reports, как манипуляция объектами или усложненное форматирование. SQL Designer - это надежное средство для просмотра данных в простом табличном формате.

Кроме этого, возможна ситуация, когда необходимо из разных отчетов получить доступ к абсолютно одним и тем же результатам, полученным из конкретной базы данных. При этом вам, должно быть, отвратительна сама мысль о составлении запросов по отдельности для каждого отчета. Посмотрите - в SQL Designer вы можете создать один-единственный запрос, сохранить его в файл запроса .QRY, и затем создавать отчеты, используя данный файл, а не прямые обращения к базе данных!

Создание SQL-запросов

Crystal SQL Designer является независимым программным модулем, входящим в группу Seagate Crystal Reports Tools. Выбрав эту опцию, вы запустите SQL Designer, как показано на рис. 1.

Для того, чтобы создать новый запрос выберите File | New из ниспадающего меню или нажмите кнопку New на инструментальной панели. Откроется диалоговое окно New Query, в котором вам будут предложены три опции: использовать Create SQL Expert, ввести инструкции SQL непосредственно, или начать с существующего запроса.

Если вы не знакомы с SQL, вам лучше всего выбрать первую опцию. Create SQL Expert шаг за шагом проведет вас через процесс создания запроса. Если вы знакомы с SQL и хотите лишь ввести конкретную инструкцию, например, SELECT, выберите вторую опцию, или если вы хотите открыть существующий файл запросов (QRY), содержащий уже созданный запрос, нажмите на третью кнопку. При этом будет просто открыт запрос, но имя этого файла не будет сохранено -  когда будете запоминать запрос, вам будет предложено ввести новое имя файла.

Непосредственный ввод операторов SQL

Если вы выберете вторую опцию в диалоговом окне New Query, откроется диалоговое окно Log On Server, в котором будет предложено выбрать источник данных ODBC для ваших запросов.

Если база данных, которую вы хотите использовать для запросов, не включена в список источников данных (data sources), добавьте ее с помощью приложения ODBC Administrator в панели управления Windows. Обратитесь к вашему администратору баз данных, если вы не уверены в том, как настроить источник данных ODBC.

Crystal SQL Designer работает только с базами данных стандарта ODBC (open database connectivity). Если вы не уверены, поддерживает ли ваша база данных этот стандарт, обратитесь к администратору базы данных.

После того как вы выбрали источник данных ODBC, вам будет предложено зарегистрироваться (log in) в базе данных (если база данных имеет защищенный доступ). В зависимости от выбранной вами базы данных, необходимо будет ввести идентификатор пользователя userID, пароль, и возможно другую информацию, как, например, имя базы данных. После того как вы введете всю необходимую информацию, появится сообщение о том, что вы успешно зарегистрировались. Еще раз нажмите OK. Появится диалоговое окно Enter SQL Statement, как показано на рис. 2.

Если вы хотите зарегистрироваться в одной или нескольких базах данных перед тем, как начинать создавать запросы, выберите File | Log On Server из ниспадающего меню. Появится диалоговое окно Log On Server, в котором вы сможете выбрать источники данных и зарегистрироваться в них. Если вы уже вошли в базу данных, то диалоговое окно Log On Server будет пропущено, и вы непосредственно перейдете к следующему шагу.

Теперь вы можете вводить инструкции SQL непосредственно в окно SQL. Используйте синтаксис SQL, соответствующий вашему источнику данных ODBC. Список этих инструкций включен в выпадающее меню, расположенное в верхней части диалогового окна. Для того, чтобы ваши инструкции были более наглядными и простыми для чтения, используйте ENTER для перехода на следующую строку, или CTRL-TAB для добавления табуляции в текущую строку. Если вы создали SQL инструкции с помощью других средств и запомнили запросы в текстовом формате ASCII, вы сможете непосредственно импортировать его в диалоговое окно SQL с помощью кнопки Import.

После того как вы создали или импортировали запрос SQL, нажмите кнопку OK для посылки запроса на сервер. Вам будет задан вопрос – хотите ли вы выполнить данный запрос. Если вы нажмете ОК, запрос будет отправлен на сервер для выполнения. При наличии ошибок в запросе, не позволяющих его выполнить, вы увидите сообщение об ошибке ODBC.

Если запрос принят сервером без каких-либо ошибок, вам, наверное, все же придется подождать некоторое время, пока сервер выполнит его. В это время на экране вы увидите песочные часы. После того как запрос будет выполнен, сервер вернет результат в SQL Designer в простом табличном формате для оперативного просмотра, как показано на рис. 3.

Результаты вашего запроса вы сможете просмотреть в интерактивном режиме, используя вертикальную и горизонтальную линейки прокрутки, либо перемещаясь непосредственно к нужной записи, указывая ее номер в текстовом окне Record. Если вы ввели некоторые изменения в данные и хотите послать на сервер тот же запрос, чтобы посмотреть результат, нажмите клавишу F5, или выберите Edit | Refresh Data в выпадающем меню. Запрос будет заново послан на сервер. Если с последнего момента обращения к серверу данные были изменены, удалены или добавлены, то запрос будет выполнен и вы увидите результат. Если вы хотите изменить инструкции SQL, нажмите кнопку Edit Query на инструментальной панели или выберите Edit | Query в ниспадающем меню. Снова появится диалоговое окно Enter SQL Statement, в котором вы сможете ввести изменения в инструкции SQL и снова послать запрос на сервер.

В восьмой версии SQL Designer способ и опции экспорта содержимого запросов полностью совместим с экспортом в Crystal Reports. Нажмите на кнопку Export на инструментальной панели или выберите меню File | Export и вы увидите такое же диалоговое окно Export, как и в Crystal Reports. Вы можете выбрать формат файла для экспорта результатов запроса, а также указать путь экспорта (дисковый файл, файл-вложение электронной почты, и т.д.)

Использование Expert

Хотя SQL Designer и может быть полезен для программистов или аналитиков, использующих SQL, основная его задача – облегчить жизнь обычным пользователям, которым необходимо создавать запросы к базе данных без использования SQL. Свойство Create SQL Expert именно для таких пользователей. Create SQL Expert проведет вас через простой, снабженный закладками интерфейс для создания и просмотра запросов к базе данных.

Для использования Create SQL Expert нажмите кнопку Use SQL Expert в диалоговом окне New Query,  в котором вы открыли новый запрос. Появится диалоговое окно Create SQL Expert, снабженное рядом закладок.

Закладка Tables

В закладке Tables, показанной на рис. 4, выберите источник данных для вашего запроса. Имеются две альтернативы: Dictionary и SQL/ODBC. Dictionary(Словарь) - это встроенная группа заранее определенных полей базы данных. Использование словарей упрощает работу пользователей с базой данных, не знающих всех нюансов структуры таблиц и названий полей. Когда вы нажмете эту кнопку, появится диалоговое окно File Open, в котором будет  предложено определить файл словаря. Выберите нужный вам файл и нажмите OK.

Так как SQL Designer работает только с базами данных SQL/ODBC, словарь должен ссылаться на этот тип базы данных. Вы получите сообщение об ошибке, если попытаетесь выбрать словарь с другим типом данных.

Если словарь не был создан, и вам необходимо непосредственно подключиться к базе данных, нажмите кнопку SQL/ODBC. При этом,  если вы еще не зарегистрировались в базе данных ODBC, появится диалоговое окно Log On Server. Выберите базу данных, которую вы хотите использовать для ваших запросов. Если вы не обнаружили ее в списке, воспользуйтесь ODBC Administrator на контрольной панели Windows и добавьте ее. Если вам необходима помощь, обратитесь к вашему администратору баз данных. Для защищенных баз данных необходимо будет ввести соответствующий идентификатор пользователя (userID) и пароль. После этого появится диалоговое окно Choose SQL Table, как показано на рис. 5. Выберите нужную вам таблицу для запросов. При этом вы можете отметить только одну таблицу (обратите внимание, CTRL-click и SHiFT-click не работают в этом диалоговом окне).

Для того чтобы выбрать все нужные вам таблицы необходимо отдельно отметить каждую в отдельности либо двойным щелчком мыши, либо нажимая на кнопку Add. После того, как вы закончили выбор таблиц нажмите кнопку Done. При выборе более чем одной таблицы появится новая закладка Links,  как описано ниже.

Закладка Links

Если вы выбрали более чем одну таблицу для ваших запросов, вам необходимо будет связать таблицы между собой, чтобы при возвращении результатов запроса они могли правильно взаимодействовать друг с другом. Связи в таблицах должны быть установлены через общие поля. Например, если вы хотите, чтобы в вашем отчете правильно взаимодействовали таблицы Employee и Payroll, вам необходимо связать их через общее поле/поля.

Закладка Links работает абсолютно так же как и Visual Linking Expert в Crystal Reports. 

Обратите внимание на то, что выбранные вами таблицы показаны вверху закладки Links, см. рис. 6. Вы можете переместить окна таблиц в новые, удобные для вас, места. (Кнопка Arrange также перемещает окна, но не всегда туда, куда вы хотите). После того, как вы разместили окна таблиц, вам необходимо отметить общее поле или общие поля для связи таблиц друг с другом. Для этого просто нажмите клавишу мыши на поле исходной таблицы, перетащите мышь к такому же полю в конечной таблице, отпустите клавишу мыши. Возникнет линия связи, соединяющая два поля. Если вы хотите связать таблицы по нескольким полям, повторите данную операцию несколько раз.

В SQL Designer существует одна курьезная ошибка. Если вы попытаетесь связаться с первым полем связываемой таблицы и отпустите клавишу мыши чуть выше данного поля, то линия связи не возникнет. Если это произойдет, повторите операцию и отпустите клавишу мыши ниже первого поля связываемой таблицы.

В случае некорректной связи (скорее всего при попытке связать поля с разным типом данных), появится предупреждающее сообщение. Тщательно проверьте правильность созданных связей. Если все правильно – не обращайте внимание на предупреждения, если же вы нашли ошибку – нарисуйте правильную связь. Для удаления связи нажмите на кнопку Delete или на клавишу DEL. SQL Designer по умолчанию использует равный тип соединения. Он может оказаться не тем типом соединения, который нужен вам для конкретного запроса. Для того, чтобы изменить тип,  выберите связь, и нажмите на кнопку Options или на правую клавишу мыши и выберите Options из всплывающего меню. По умолчанию SQL Designer автоматически связывает таблицы, используя Smart Linking. Smart Linking автоматически связывает поля с одинаковыми именами и одинаковым типом данных. Кроме этого, поля с данными типа string должны иметь одинаковую длину. Если вы удалили связь и хотите вновь воспользоваться Smart Link, или если Smart Link был отключен, нажмите на кнопку Smart Linking для автоматической связи таблиц в запросе.

Smart Linking работает правильно только в особых случаях. В основном же вы потратите больше времени на удаление неправильных связей и добавление правильных, чем если бы вы создавали связи самостоятельно. Вы можете отключить Smart Linking. Для этого запустите Crystal Reports, выберите File|Options, и отключите флажок Auto-SmartLinking в закладке Database. Данная установка также будет работать и в Crystal SQL Designer.

После того как таблицы были корректно связаны, нажмите на кнопку Next или на закладку Fields. Теперь вы можете выбрать поля для включения их в ваш запрос. Ниже описано, как это сделать.

Закладка Fields

В закладке Fields, показанной на рисунке 7, вы можете непосредственно выбрать поля, которые вы хотите включить в ваш запрос. Вы увидите все поля выбранной вами таблицы в левом окне Database Fields. Вы можете выбрать одно или несколько полей, используя SHiFT-click или CTRL-click. Для того, чтобы добавить поля в запрос надо либо дважды щелкнуть мышью над выбранным полем, либо просто перетащить его в окно Query Fields, либо используя кнопки Add или All. Если вы случайно добавили лишние поля, удалите их из окна Query Fields с помощью кнопки Remove.

Если вы желаете создать SQL-выражение и добавить его в запрос, воспользуйтесь кнопкой Expression. SQL-выражения подобны обычным формулам: вы определяете некоторое вычисление, используя встроенные в SQL операторы или функции. Вам будет предложено дать имя этому выражению. После этого появится диалоговое окно SQL Expression.

Двойным щелчком мыши вы можете добавить поля из списка Fields в окно SQL (однако при этом может не всегда правильно сохраняется SQL-пунктуация во введенном поля). Тогда вам понадобится вручную редактировать SQL, чтобы выражение правильно работало в вашей базе данных. После того, как вы создали выражение, оно появится (отмеченное значком @) в разделе SQL Expressions списка Database Fields. Вы можете включать его в список Query Fields аналогично обычным полям.

Для создания SQL-выражений вам необходимо иметь определенные знания  SQL и вашего сервера базы данных. Если вам необходима помощь, проконсультируйтесь с вашим администратором баз данных или обратитесь к более опытным коллегам.

Вам может понадобиться выполнить операции суммирования или агрегирования, такие как sum или average. В этом случае сервер базы данных создаст «группы» данных (аналогичные группам в Crystal Reports) и будет возвращать только одну запись базы данных для каждой группы.

Запись будет содержать суммарное или агрегированное значение для всех записей этой группы. Выберите в окне Query Fields поле, к которому вы хотите применить такие операции, и затем выберите функцию из ниспадающего списка Total. Она будет добавлена к полю списка Query Fields. Затем выберите из списка Query Fields поля, которые вы хотели бы включить в группы для последующей обработки функциями агрегирования.

Например, для того, чтобы увидеть полную сумму всех заказов каждого пользователя, выберите поле Order Amount и Sum из ниспадающего списка Total. Другое поле, которое вы также можете включить в запрос, это Customer Name. Даже если в базе данных существуют много других записей, сервер сгруппирует записи по клиентам, возвращая лишь одну запись для каждого клиента. Вместо сумм отдельных заказов, сервер выведет общую сумму всех заказов для каждого клиента.

После того как вы выбрали все поля, а также функции агрегирования и SQL-выражения, включенные в ваш запрос, нажмите на кнопку Finish для посылки запроса на сервер базы данных, и через некоторое время вы увидите результат. На рис. 8 показаны результаты функций агрегирования для поля Customer Name, выбранного в качестве поля группы.

Однако если вы хотите вывести результаты запроса в определенном порядке или ограничить запрос отдельными записями, вам необходимо обратиться к закладкам Sort или Select. Нажмите на кнопку Next или на соответствующую закладку для перехода к разделу Sort.

Закладка Sort

В закладке Sort, показанной на рисунке 9, вы можете выбрать поле, по которому будет производиться сортировка результатов вашего запроса. Также как и в закладке Fields, вы можете добавить поле в список Group Fields двойным щелчком мышки, или перетаскиванием, или нажав кнопку Add.

После того как вы выбрали поле или поля, вы можете определить способ, по которому будет производиться сортировка в вашем запросе. Для этого отметьте поля в списке Group Fields и выберите режим сортировки из выпадающего списка Order. Режим ascending - соответствует сортировке в алфавитном порядке, тогда как descending - соответствует сортировке в обратном порядке. Опция Original Order не сортирует записи, оставляя их в том же порядке, как они записаны в базе данных (если вы выберите этот режим, то нет никакого смысла добавлять поля в закладку Sort). Очень важно, в каком порядке поля представлены в списке Group Fields. Если, например, вы хотите, чтобы сортировка шла в начале по полю Country, а потом по полю Region, то в списке Group Fields первым должно стоять поле Country и лишь затем поле Region. Если вы перепутаете порядок, то в результате запроса в один и тот же регион будут входить много стран. Вы можете изменить порядок полей с помощью кнопок с маленькими стрелками, расположенными над списком. После того, как вы определили порядок сортировки записей вашего запроса, вы, наверное, захотите ограничить запрос только на определенные записи. Нажмите кнопку Next или на закладку Select.

Закладка Select

Скорее всего, одной из главных причин, почему вы захотите воспользоваться SQL Designer, будет возможность анализа вашей базы данных в режиме реального времени, используя для этого не все, а лишь необходимые в данный момент записи. Для того, чтобы ограничить ваш запрос только необходимыми данными, воспользуйтесь закладкой Select, показанной на рисунке 10.

Выберите одно или несколько полей из списка Database Fields, которыми вы хотите ограничить результаты запроса. Включите их в список Select Fields двойным щелчком мышки, перетягиванием, или нажатием на кнопку Add. Затем отметьте каждое поле в списке Select Fields. При этом появится набор раскрывающихся списков, определяющих критерии, по которым будут отбираться записи для данного поля. Для определения критериев отбора запроса выберите опции из этих списков.

По умолчанию, первый список имеет значение Is. После того, как вы выберете какое-нибудь, отличное от Any, значение во втором списке, вы сможете вернуться к первому и изменить Is на Is Not, если это необходимо. Второй список содержит различные опции сравнения, такие как Equal To, One Of, Less Than, и Greater Than. В зависимости от того, какой способ сравнения вы выберете, появятся дополнительные раскрывающиеся списки, текстовые поля и кнопки. Выберите способ сравнения и заполните необходимые данные для использования в вашем запросе.

Закладка Select полностью идентична Select Expert в Crystal Reports.

Теперь вы можете послать запрос на сервер и увидеть возвращаемые результаты. Однако если вы желаете посмотреть на то, что именно SQL Designer посылает на сервер, или если вы хорошо знаете SQL и хотите внести некоторые изменения в SQL запрос, нажмите на закладку SQL. Вы увидите SQL-код, автоматически генерируемый SQL Designer.

Закладка SQL

В закладке SQL, показанной на рисунке 11, вы увидите созданные вами в предыдущих разделах инструкции SQL. Выбранные вами поля будут находиться в операторе SELECT, выбранные таблицы - в операторе FROM, их связь -  в операторах FROM или WHERE, все выбранные вами сортирующие, группирующие и агрегирующие функции - в операторах GROUP BY или ORDER BY, а также критерии выбора - в операторе WHERE. Даже если вы и не знакомы с SQL, это информация будет для вас весьма полезной (может быть язык SQL покажется вам достаточно простым, так что у  вас появится желание самостоятельно изучить его и подумать об изменении карьеры!)… Если вы хорошо знаете SQL, вы сможете свободно вносить любые изменения в любую часть предложения SQL. Однако вы должны придерживаться синтаксиса вашего сервера баз данных и используемого драйвера ODBC. Кроме этого, так как SQL Designer работает в режиме только для чтения, вы не сможете изменять операторы SQL, например SELECT на UPDATE или DELETE.

Если вы вносите изменения в инструкции SQL в закладке SQL, вам нет необходимости также вносить изменения в других разделах SQL Expert. Однако вы должны быть уверены в ваших знаниях языка SQL перед тем, как начинать редактировать инструкции SQL. При редактировании SQL-запроса, все закладки кроме SQL исчезнут.

Закончив редактирование запроса, нажмите на кнопку Finish в Create SQL Expert для отправки его на сервер. Вам будет задан вопрос, хотите ли вы отправить запрос. Если вы нажмете Yes, запрос будет отправлен на сервер для выполнения. Если возникнут ошибки, или другие проблемы, вы увидите сообщение об ошибке (ODBC error). В процессе выполнения запроса на экране вы будете видеть курсор в виде песочных часов. Результаты запроса, отправленные сервером в SQL Designer, будут отображаться на экране в простом матричном формате. На рисунке 18-3, представленном ранее в этой главе, показан пример результатов запроса.

SQL Designer является лишь средством просмотра. Для просмотра результатов пользуйтесь вертикальной и горизонтальной линейками прокрутки, а для перехода к конкретной записи введите ее номер в текстовом окне Record. При этом вы не сможете вносить какие-либо изменения. При желании, если данные были изменены, вы можете снова отправить ваш запрос на сервер. Для этого нажмите кнопку Refresh на инструментальной панели, нажмите клавишу F5, или выберите Edit | Refresh Data из выпадающего меню.

Появятся все закладки Create SQL Expert, (если только перед этим вы не редактировали SQL инструкции в разделе SQL)- вы можете внести изменения в любой закладке и вновь отправить модифицированный запрос на сервер

Использование Parameter Field в запросах

При работе в реальном времени с базой данных, вы, наверное, обратите внимание на то, что часто отправляете один и тот же запрос, внося в него лишь небольшие изменения в закладке Select, пользуясь Create SQL Expert, или в операторе WHERE при непосредственном наборе SQL инструкций. В этом случае гораздо удобнее создать специальное поле параметра, значение которого будет автоматически вставляться в критерий выбора вашего запроса. Прежде чем задавать это значение вы должны увидеть результаты запроса. Эта опция не доступна, если вы находитесь в диалоговых окнах SQL Expert или в Enter SQL Statement. Выберите Edit | Parameter Field  из раскрывающегося меню. Если вы в первый раз создаете данное поле, вам будет предложено дать ему имя. Наберите подходящее имя и нажмите OK. Появится диалоговое окно Parameter Field, как показано на рисунке 12. Введите вспомогательную информацию в окно Prompting Text, для упрощения работы с полем  при обращении к нему. Можно ввести условия ввода данных, как, например, «только заглавные буквы», «двух символьное сокращение названия области», или любую другую информацию. Вы можете ввести сообщение любой длины, однако показаны будут только первые 20 символов.

Выберите тип данных для поля параметра из выпадающего списка Value Type. Причем тип должен соответствовать типу того поля в запросе, с которым оно будет в дальнейшем связано. Если вы собираетесь работать с числовым полем, выберите тип numeric, для строкового поля – тип string, и т.д.  Раздел Default Prompting Value содержит два выпадающих списка. В первом списке вы можете набрать начальное значение для поля параметров. Если вам необходима помощь в задании начального значения, выберите из выпадающего списка Browse Field поле базы данных, чтобы заполнить список Default Prompting Value. Затем, при нажатии клавиши стрелка вниз вы увидите образцы данных для этого поля. Выберите одно из них в качестве начального значения.

После того как вы определили все пункты поля параметров, сохраните их, нажав OK. Теперь поле может быть использовано как в SQL Expert, так и при непосредственном редактировании созданных вами ранее инструкций SQL. В первом случае нажмите кнопку Edit Query на инструментальной панели или выберите Edit | Query из опускающего меню. Если запрос был создан непосредственным набором инструкций SQL, они вновь появятся перед вами. Теперь введите небольшое изменение в операторе WHERE, заменив буквенные значения именем поля параметра. Например, инструкция SQL прежде выглядела как:

WHERE Customer.Country - 'USA'.

Замените критерий выбора -  'USA' - на имя поля параметров - Country

Теперь запрос будет выглядеть следующим образом:

WHERE Customer.Country = '{?Country}'

Проследите за сохранением пунктуации (кавычки или апострофы) вокруг введенного имени поля параметра. Помните, что поле параметра вводит в строку запроса то, что вы в него записали. Имя поля параметра должно обязательно находиться в фигурных скобках, перед именем должен стоять знак вопроса. Если вы используете Create SQL Expert, выберите поле параметра в закладке Select. Для этого отметьте соответствующую базу данных из выпадающего списка. Вы увидите список всех полей параметров, имеющих тот же тип данных, что и соответствующие поля базы данных. Выберите необходимое вам поле. Если поле параметра не присутствует в списке, это значит, что, скорее всего, используемый вами тип данных не соответствует типу поля базы данных.

После изменений, обновите (refresh) запрос. Теперь вам будет предложено ввести данные в поле (или поля) параметров, которые были добавлены в запрос. Введите необходимые параметры и нажмите OK. SQL Designer заменит необходимыми данными поле параметра в запросе. Вы можете многократно обновлять ваш запрос с различными данными, без необходимости его редактировать.

Поля параметров Query идентичны полям параметров Crystal Reports, но не имеют аналогичных возможностей.

Сохранение запроса

После того как вы создали запрос и посмотрели результаты его действия, вам захочется запомнить его для дальнейшего использования, или для более подробного анализа в SQL Designer, или для работы с ним с помощью Crystal Reports. Во-первых, определите, хотите ли вы запомнить вместе с запросом также и все полученные и просмотренные с помощью SQL Designer результаты. Если да, то убедитесь, что в меню File отмечена опция Save Data with Query. Если вы сохраните запрос без данных, размер файла .QRY будет меньше, но вам придется обновлять запрос каждый раз, когда вы будете его открывать с помощью SQL Designer. Далее, нажмите кнопку Save на инструментальной панели, или

выберите Save или Save As в меню File. File | Save, сохранит ваш запрос в файле со старым именем, заменив имеющуюся в нем информацию на новую, тогда как File Save As всегда запрашивает имя файла. Файлы SQL Designer сохраняются с расширением .QRY.

Использование существующего SQL запроса

Сохраненные запросы вы сможете использовать  в дальнейшем для дополнительного анализа данных в реальном времени. Вы также сможете использовать .QRY файлы в качестве исходного текста для Crystal Report.

Открытие существующих запросов

Чтобы открыть в SQL Designer существующий файл запроса, нажмите кнопку Open на инструментальной панели или выберите File | Open из выпадающего меню. Появится диалоговое окно File Open, показывающее все .QRY файлы в исходной директории.

Если необходимый вам .QRY файл, находится в другой директории, перейдите в нее. Выберите файл и нажмите OK. Откроется запрос с набором сохраненных результатов (если вы запомнили запрос без данных, он автоматически обновится).

Теперь вы можете редактировать ваш запрос, как было описано выше в этой статье.

Использование запросов вместе с Crystal Reports

Одним из главных достоинств Crystal SQL Designer, является возможность использовать .QRY файлы в качестве исходных данных в Crystal Report. Однако у вас может возникнуть вопрос: Зачем использовать запрос как исходник для отчетов, если отчеты можно генерировать непосредственно из базы данных? Существуют две основные причины, по которым использование запроса предпочтительнее:

  • Запрос содержит только те таблицы (уже связанные) и поля,  которые вы хотите использовать при создании отчета.
  • Если запрос содержит сохраненные данные, то они будут использоваться отчетом. Очень удобно только один раз выполнить запрос к базе данных и запомнить результаты в файле .QRY. После этого вы сможете, используя сохраненные данные, создавать и распечатывать разнообразные отчеты, базирующиеся на одном и том же исходном тексте без необходимости каждый раз обращаться к базе данных. Еще одним достоинством запроса с сохраненными данными является возможность создания отчетов в так называемом режиме point in time. Запрос может быть в любой момент отправлен к базе данных. С помощью сохраненных результатов запроса вы сможете в любой момент контролировать состояние базы данных.

Количество шагов, которые необходимо сделать, чтобы использовать запрос в качестве исходника, зависит от того, какую из опций (report expert или Blank Report) вы будете использовать при создании нового отчета. Если вы используете один из экспертов отчетов,  то в закладке Data появится лишь одна кнопка. Нажмите на нее и выберите необходимый вам запрос из списка файлов. Если вы используете для создания отчета опцию Blank Report,то в Data Explorer выберите Find Crystal SQL Query File из категории Dictionary/Query. Появится диалоговое окно File Open, показывающее только файлы .QRY. Перейдите в директорию, где находится файл запроса и выберите его.

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

 Обсудить на форуме   Написать вебмастеру 

© 2001 Interface Ltd