Использование технологий WWW для доступа к базам данных



         

Выполнение запросов к базам данных - часть 2


Заметим,

что этот атрибут поддерживается только некоторыми ODBC

- драйверами (например, драйвером

для MS SQL Server 6.0).

Атрибут DEBUG используется

для отладки запросов. При наличии этого атрибута пользователю

отправляется дополнительная информация о выполнении этого запроса,

такая как текст выполненного SQL

- запроса, число возвращенных записей и др.

Приведем пример запроса с именем 'AllPersons',

который возвращает все записи таблицы 'Persons'

из базы данных, с которой связан источник данных ODBC

с именем 'Person DB':

<DBQUERY NAME="AllPersons"

DATASOURCE="Person DB"

SQL="select * from Persons">

Для динамической настройки SQL -

выражения можно использовать параметры, переданные в шаблон. Это

могут быть параметры, переданные из формы, URL,

а также переменные CGI. Параметры,

используемые внутри SQL -

выражения, должны быть обрамлены символом "#"

(например #Name#).

При обработке запроса Cold

Fusion ищет параметр с таким именем среди параметров, полученных

из формы, в URL или среди

переменных CGI. При нахождении

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

ссылки на параметр.

Примеры использования параметров в SQL

-выражении

Пример 1

Предположим что обрабатывается URL

"/cgi-shl/dbml.exe?Template=prs.dbm&Id=22",

а атрибут SQL в DBQUERY

имеет вид

SQL="select * from Persons

where Id = #Id#",

тогда в базу данных будет передано следующее SQL - выражение:

select * from Persons where Id

= 22 .

Пример 2

Предположим, что в шаблон передан параметр FirstLetters

и нужно найти в таблице Persons

записи, в которых первые

буквы в поле FullName совпадают

со значением этого параметра. Значение атрибута SQL

в этом случае будет следующим:

SQL="select * from Persons

where FullName like '#FirstLetters#%'"

Следует обратить внимание на то, что маска, состоящая из параметра

и символа '%', в отличие от

предыдущего примера, обрамлена одинарными кавычками.Это связано

с тем, что поле Id из примера

1 имеет числовой тип, а поле

FullName - текстовый тип (синтаксис

SQL требует, чтобы текстовые

значения всегда были обрамлены одинарными кавычками).

Для того чтобы задать маску, в примере использовался символ '%',

который в SQL - запросах соответствует

произвольной последовательности символов. Также для определения

маски может использоваться символ '_'

(подчерк), соответствующий одному

произвольному символу.




Содержание  Назад  Вперед