Смекни!
smekni.com

Использование пакета Cold Fusion для MS Windows при построении WWW - интерфейсов к базам данных (стр. 1 из 4)

.

5.1Введение

5.2Установка Cold Fusion

5.3Администрирование Cold Fusion

5.4Взаимодействие Cold Fusion с базами данных

5.5Передача параметров в DBML - шаблон

5.6Занесение и модификация данных с использованием тегов DBINSERT и DBUPDATE

5.7Выполнение запросов к базам данных

5.8Использование результатов запроса для динамического создания HTML - документа

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

5.10Дополнительные замечания по созданию DBML - шаблонов

5.11Использование параметров и переменных в шаблонах
5.11.1Поля формы и параметры URL
5.11.2Переменные окружения CGI
5.11.3Применение тега DBSET для создания переменных
5.11.4HTTP Cookies
5.11.5Использование результатов выполнения запросов

5.12Проверка корректности данных и форматирование вывода
5.12.1Проверка корректности данных в полях формы
5.12.2Функции вывода в DBML

5.13Динамическое изменение содержимого документа
5.13.1Условный оператор (DBIF & DBELSE)
5.13.2Перенаправление на другой URL (DBLOCATION & DBABORT)
5.13.3Включение в шаблон других шаблонов
5.13.4Определение типа данных MIME для содержимого документа

5.14Расширенные возможности
5.14.1Динамическое определение SQL выражения
5.14.2Поддержка транзакций
5.14.3Вложенные области вывода и группирования
5.14.4Использование списочных полей с множественным выбором
5.14.5Дополнительные команды SQL

При подготовке данной главы отчета использовались материалы " Cold Fusion User Guide " (Руководство пользователя пакета Cold Fusion).

5.1 Введение

Пакет Cold Fusion фирмы Allaire - это средство для быстрой разработки интерактивных, динамических документов для Web основанное на обработке информации из баз данных, в основе которого лежит следующий набор технологий:

  • HTML (Hyper-Text Markup Language)
  • CGI (Common Gateway Interface)
  • SQL (Structured Query Language)
  • ODBC (Open Database Connectivity)

Разработка приложений с использованием Cold Fusion не требует программирования на таких языках как Perl, C/C++, Visual Basic или Delphi. Вместо этого вы создаете приложение, встраивая в обычный (стандартный) HTML файл специальные теги для работы с базами данных.

В данной главе рассматривается Cold Fusion версии 1.5 .

5.2 Установка Cold Fusion

Cold Fusion запускается как CGI приложение на различных Web-серверах под Windows NT и Windows 95 и должен быть совместим с любым сервером поддерживающим CGI.

Cold Fusion тестировался на совместимость со следующими серверами:

  • O'Reilly WebSite
  • Microsoft Internet Server
  • EMWAC HTTPS
  • Process Software Purveyor
  • Netscape Communications/Commerce Server
  • Internet Factory Communications/Commerce Builder
  • Spry Safety Web Server
  • CSM Alibaba

Для связи с различными СУБД Cold Fusion использует 32-разрядные ODBC - драйвера. Для корректной работы с Cold Fusion ODBC - драйвер должен удовлетворять следующим требованиям:

  • Это должен быть 32-разрядный драйвер.
  • Он должен поддерживать Уровень 1 ODBC API.
  • Должна поддерживаться базовая грамматика SQL.
  • Для совместимости с функциями ввода даты/времени, драйвер должен поддерживать соответствующие типы данных.

Для установки и использования Cold Fusion система должна удовлетворять следующим требованиям:

  • Операционная система Windows NT 3.51(или выше) или Windows 95.
  • Микропроцессор 80386 или выше; рекомендуется Pentium.
  • 10Mb свободного дискового пространства.
  • 24Mb RAM для Windows NT или 16Mb для Windows 95
  • Установленная сетевая поддержка TCP/IP.
  • Установленный WWW сервер.

Для установки Cold Fusion нужно запустить программу SETUP.EXE, которая должна находится на инсталляционном диске 1.

Помимо копирования файлов, необходимых для работы Cold Fusion, в процессе установки, в корневой директории с документами Web сервера создается директория с именем CFPRO. Эта директория содержит:

  • Тест, для проверки правильности установки системы.
  • Мини-учебник, в формате HTML, помогающий освоить азы Cold Fusion.
  • Примеры приложений, демонстрирующие различные способы использования Cold Fusion.

Чтобы проверить правильность установки Cold Fusion, нужно открыть документ, URL до которого имеет вид http://myserver/cfpro/getstart.htm, где myserver - имя или IP адрес вашего Web сервера.

5.3 Администрирование Cold Fusion

Для администрирования в Cold Fusion предусмотрен специальный интерфейс администратора. Этот интерфейс позволяет изменять различные параметры настройки Cold Fusion по четырем категориям:

  • Data Sources - используется для настройки источников данных ODBC, для использования их с Cold Fusion. Чтобы добавить источник данных, нужно нажать на кнопку "Add...", выбрать один из установленных в системе драйверов ODBC и задать определенные для него настройки. Переопределить эти настройки можно воспользовавшись кнопкой "Setup...", предварительно выделив конкретный источник данных. Если нужно определить способы взаимодействия Cold Fusion с источником данных, то нужно нажать на кнопку "Preferences..." и определить такие атрибуты как имя пользователя, пароль, допустимые операции с базой данных и др.
  • Templates - используется для настройки логических путей до директорий в которых расположены файлы с шаблонами Cold Fusion.
  • Debugging - используется для настройки отладочных сообщений и сообщений об ошибках.
  • Mail - используется для настройки параметров SMTP mail и позволяет просматривать журнал сообщений и ошибок.

5.4 Взаимодействие Cold Fusion с базами данных

Cold Fusion позволяет динамически генерировать HTML документы основанные на запросах пользователя. Эти запросы передаются в Cold Fusion CGI - скрипт (DBML.EXE), который пересылает данные в Cold Fusion Engine обрабатывающий эти данные в соответствии с заданным шаблоном, выполняя необходимые запросы и генерируя HTML документ, который отправляется пользователю.

Основой динамического создания документов являются специальные теги, входящие в язык разметки DBML, ориентированные на работу с базами данных. Почти все основные возможности Cold Fusion сосредоточены в четырех тегах:

  • DBQUERY - выполнение SQL - запроса к базе данных;
  • DBINSERT & DBUPDATE - создание и модификация записей в базе данных;
  • DBOUTPUT - отображение результата запроса, допускающее его произвольное размещение среди HTML - тегов.

Шаблон, на основе которого генерируется HTML - документ, представляет собой комбинацию тегов HTML и DBML:

  • HTML - теги используются для форматирования как постоянной части документа, так и результатов запросов. Например, можно определить полужирный шрифт для каждого поля и разделительные линии между записями.
  • DBML - теги используются для формирования запроса к базе данных, а также определяют где и как будут отображены результаты запросов.

На рисунке 5-1 показывается, как Cold Fusion обрабатывает запрос, полученный от клиента:


Рисунок 5-1
  1. Когда пользователь нажимает кнопку типа "Submit" в форме или выбирает гипертекстную ссылку в документе, Web - браузер отправляет запрос на Web - сервер.
  2. Web - сервер, если в запросе указан DBML - шаблон, запускает процесс Cold Fusion, отправляя ему данные полученные от клиента.
  3. Cold Fusion принимает данные полученные от клиента обрабатывает теги DBML в шаблоне, включая подготовку запроса к базе данных и форматирование, которое будет использоваться в результирующем документе.
  4. Cold Fusion взаимодействует с базой данных используя ODBC.
  5. Cold Fusion динамически генерирует HTML - документ содержащий результат выполнения запросов к базе данных и возвращает его Web - серверу. Cold Fusion может также динамически генерировать почтовое сообщение и отправлять его через почтовый SMTP - сервер.
  6. Web - сервер возвращает сгенерированный HTML - документ Web - клиенту.

5.5 Передача параметров в DBML-шаблон

Существует несколько способов передачи параметров между шаблонами. Можно передавать параметры непосредственно в URL, использовать для этого форму либо cookie.

Если параметры передаются через URL, то они добавляются к адресу вызываемого шаблона через символ "&" (амперсант) в виде параметр = значение. Например, гипертекстовая ссылка, приведенная ниже, отправляет параметр с именем 'user_id' и значением 5 в шаблон 'example.dbm':

<A HREF="cgi-shl/dbml.exe?Template=example.dbm&user_id=5">

При передаче параметров через форму используются поля формы, которые должны иметь имена, совпадающие с именами параметров, которые требуется передать. Ниже приведен пример передачи параметра, из предыдущего примера используя форму:

<FORM ACTION="cgi-shl/dbml.exe?Template=example.dbm">
<INPUT TYPE="HIDDEN" NAME="user_id" VALUE="5">
<INPUT TYPE="SUBMIT" VALUE="Enter">
</FORM>

Заметим, что при обращении к CGI - программе DBML.EXE должен быть определен стандартный параметр Template, указывающий на конкретный шаблон.

Переменные, занесенные в cookie браузера и переменные окружения CGI доступны в любом шаблоне. Способы занесения информации в cookie описаны в п.5.11.

5.6 Занесение и модификация данных с использованием тегов DBINSERT и DBUPDATE

При использовании тегов DBINSERT и DBUPDATE для занесения или модификации данных, параметры должны быть переданы в шаблон обязательно из формы, используя метод POST.

Для создания новой записи в базе данных используется тег DBINSERT, а для модификации существующей записи используется тег DBUPDATE. При использовании этих тегов необходимо определить атрибуты DATASOURCE и TABLENAME. DATASOURCE это название источника данных ODBC, содержащего редактируемую таблицу, а TABLENAME - имя этой таблицы.

Например, если источник данных ODBC называется 'Person DB', а таблица, в которой требуется создать запись - 'Person', то тег DBINSERT в шаблоне будет иметь следующий вид:

<DBINSERT DATASOURCE="Person DB" TABLENAME="Person">

Параметры, переданные в шаблон должны совпадать с именами полей таблицы, в которой создается (модифицируется) запись. В том случае, если не все передаваемые параметры должны участвовать в этой процедуре, используется атрибут FORMFIELDS, в котором через запятую перечисляются имена полей таблицы, для которых должны существовать одноименные параметры.

Особо следует отметить, что для того, чтобы использовать тег DBUPDATE для модификации записи, в таблице должен быть определен первичный ключ, а для всех полей включенных в первичный ключ из обрабатываемой HTML-формы обязательно должны быть переданы соответствующие параметры.