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

Атрибуты тега DBTABLE:

 HEADER - текст, который будет выводиться как заголовок колонки;
 WIDTH - ширина колонки в символах (по умолчанию 20);
 ALIGN -выравнивание содержимого колонки (LEFT, RIGHT и CENTER);
 TEXT -заключенный в кавычки текст, определяющий содержимое колонки, в котором могут находиться те же теги, ссылки на параметры и др., что и в теге DBOUTPUT.

Приведем пример использования тегов DBTABLE и DBCOL:

<DBTABLE QUERY "AllPersons" MAXROWS=20>
<DBCOL HEADER="Фамилия Имя Отчество" WIDTH="30" TEXT="#FullName#">
<DBCOL HEADER="Телефон" WIDTH="10" TEXT="#Phone#">
<DBCOL HEADER="Дата рождения" WIDTH="9" TEXT="# DateFormat(Birthday)#">
</DBTABLE>

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

  • В шаблонах DBML, для комментариев, используется три тире (<!---), в отличие от двух в HTML (<!--). Эта специальная форма синтаксиса для комментариев позволяет Cold Fusion игнорировать теги и текст, содержащиеся внутри этого комментария.
  • Ссылки на другие файлы (графические, HTML и CGI программы), содержащиеся в DBML шаблоне, должны использовать полный путь, начиная с корневого каталога сервера.
  • Так как символ '#' является специальным символом в Cold Fusion, то чтобы включить его в область вывода, определяемую тегом DBOUTPUT, нужно в шаблоне использовать два символа '#' вместо одного. Это же правило относится и к двойной кавычке, если этот символ нужно вставить, например, в атрибут SQL (см. следующий абзац).
  • Cold Fusion не поддерживает имена полей, содержащих пробелы, внутри тега DBOUTPUT. Если в имени поля все же встречаются пробелы, то при определении SQL выражения в теге DBQUERY, для каждого такого поля следует задать псевдоним. Например,

SQL="select ""Full Name"" as FullName from Persons"

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

5.11 Использование параметров и переменных в шаблонах

5.11.1 Поля формы и параметры URL

Если в шаблон, с помощью полей формы или в URL, были переданы параметры, то внутри любого тега DBML к этим параметрам можно обращаться, используя следующий синтаксис: #Form.Name#, #URL.Name#. На самом деле, префиксы 'Form.' и 'URL.' могут опускаться, если заранее известно, что не может быть параметров других типов с такими же именами. Это правило относится ко всем типам параметров и переменных.

5.11.2 Переменные окружения CGI

Каждый сеанс связи вызывающий CGI - программу имеет конкретные переменные окружения. Доступ к ним из шаблона осуществляется, также как и к другим параметрам, только используется префикс 'CGI.', например #CGI.REMOTE_ADDR#.

5.11.3 Применение тега DBSET для создания переменных

С помощью тега DBSET можно создавать переменные непосредственно в самом шаблоне и использовать их. Приведем пример, в котором создается переменная #UserId# и ей присваивается значение 10.

<DBSET #UserId#=10>

В правой части операции присваивания в DBSET, может находиться как число, текст (заключенный в кавычки), так и любые параметры доступные в шаблоне, например #CGI.SCRIPT_NAME#. Обращаясь к этим переменным, следует использовать префикс Variable, например #Variable.UserId#.

5.11.4 HTTP Cookies

Cookies - это механизм, позволяющий приложениям о стороны сервера сохранять и использовать параметры на стороне клиента. Этот механизм поддерживается всеми версиями Netscape Navigator, MS Internet Explorer начиная с версии 2.0, и будет поддерживаться остальными Web - браузерами в ближайшем будущем.

Для сохранения параметров в Cookies. Используется тег DBCOOKIE, имеющий следующий синтаксис:

<DBCOOKIE NAME="Имя_параметра" VALUE="Значение параметра" EXPIRES="Срок действия" SECURE>

В атрибутах NAME и VALUE определяются имя и значение параметра соответственно. Атрибут EXPIRES определяет, когда закончится срок действия этого параметра. Этот атрибут может быть задан как дата т.е. '10/09/97', количество дней (т.е. 10, 100), NOW (удаляет параметр) или NEVER. Наличие необязательного атрибута SECURE запрещает отправлять параметр браузеру, если тот не поддерживает стандарт SSL.

К параметрам, хранимым в cookies можно обращаться внутри любого тега DBML, добавляя префикс 'Cookies.', например:

<DBOUTPUT>
#Cookies.User_Id#
</DBOUTPUT> .

5.11.5 Использование результатов выполнения запросов

После выполнения запроса, результат его выполнения может быть использован в качестве динамического параметра для спецификации другого запроса. Например, если создан запрос с именем 'FindUser', который возвращает идентификатор записи, расположенный в поле 'USER_ID', то можно использовать этот идентификатор в другом запросе, используя имя запроса как префикс к имени поля, разделяя их точкой (т.е. #FindUser.UserId#).

Каждый запрос, описанный тегом DBQUERY, после выполнения имеет два специальных атрибута, RecordCount и CurrentRow, содержащих информацию о количестве возвращенных в результате выполнения запроса записей и о текущей записи, обрабатываемой тегом DBOUTPUT, соответственно. Используются эти атрибуты так же как и поля запроса (#FindUser.RecordCount#).

5.12 Проверка корректности данных и форматирование вывода

5.12.1 Проверка корректности данных в полях формы

В Cold Fusion предусмотрен механизм проверки корректности заполнения полей формы. Этот механизм основан на добавлении в форму дополнительных полей типа HIDDEN (скрытые), с именем, составленным из имени поля, значение которого нужно проверить и одного из допустимых в Cold Fusion суффиксов, задающих контекст проверки.

В следующей таблице приведен список всех суффиксов используемых для проверки:

Суффикс Значение атрибута VALUE Описание
_required Текст сообщения об ошибке Проверяется произведен ли ввод в поле формы.
_integer Текст сообщения об ошибке Проверяется, является ли значение, введенное пользователем, целым числом.
_float Текст сообщения об ошибке Проверяется, является ли значение, введенное пользователем, числом.
_range MIN = Минимальное_Значение
MAX = Максимальное_Значение
Проверяется, находится ли введенное число в определенных границах.
_date Текст сообщения об ошибке Проверяется, находится ли введенная пользователем дата в одном из следующих форматов: DD/MM/YY, DD/MM/YYYY, DD/MM (используется текущий год). В качестве разделителя можно, также, использовать тире (т.е. DD-MM-YY).

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

К-во Просмотров: 811
Бесплатно скачать Доклад: Использование пакета Cold Fusion для MS Windows при построении WWW - интерфейсов к базам данных