|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
Создание
фильтров А
теперь можно приступить к созданию фильтра, отбирающего записи из таблицы в
набор. Помните,
как мы создали сложный набор данных? Если не помните, рассмотрим код SQL-запроса,
созданного нами: SELECT
Content, Desc, Color FROM Guestbook, Signs WHERE Sign=ID Ключевое
слово WHERE языка SQL задает условие, согласно которому из таблицы будут извлекаться
записи. В приведенном выше примере мы уже фактически создали условие, отбирающее
только те записи таблицы Guestbook, для которых в таблице signs имеется "пара".
Причем "пары" мы отбирали по значениям поля sign таблицы Guestbook
и поля ID таблицы signs. Такие условия называются условиями связи таблиц. Фильтром
же называется условие отбора записей. Это условие используется не для связи
таблиц, а для отбора записей из таблицы. Например, в приведенном ниже SQL-запросе
используется именно условие отбора записей, иначе говоря, фильтр: SELECT
Content FROM Guestbook WHERE Sign=2 Этот
запрос создаст набор данных, включающий только те записи таблицы Guestbook,
поля sign которых содержат значение 2 ("Нейтрально"). Чтобы
создать фильтр, нам придется добавить условие отбора записей к уже существующему
условию связи таблиц. Это совсем просто. Вызовите диалоговое окно Recordset
для нашего набора данных Guestbook. Если оно отобразилось в обычном виде,
щелкните кнопку Advanced, чтобы переключить его в расширенный вид. И
посмотрите на содержимое поля ввода SQL. Итак,
нам нужно добавить в SQL-запрос Новое условие. Мы будем сравнивать значение
поля sign и... Но
с чем мы его будем сравнивать? Ах,
да, с параметром sign, переданным страницей Selector.htm. Но как его сюда ввести? Очень
просто. Для этого нам понадобится создать переменную SQL-запроса, представляющую
некий параметр, полученный от другой Web-страницы или в результате каких-то
вычислений. И в этом нам поможет список Variables диалогового окна Recordset
и относящиеся к нему элементы управления. Нажмите
кнопку со знаком "плюс". В списке появится новая строка. Щелкните
по этой строке в районе колонки Name (имя создаваемой переменной) и введите
это имя, в нашем случае — sign. После этого щелкните в районе колонки Default
Value (значение переменной по умолчанию, присваиваемое ей изначально) и
введите, скажем, 2 (т. е. по умолчанию будут выводиться только "нейтральные"
записи). Теперь останется лишь ввести в колонку Run-time Value выражение,
задающее истинное значение этой переменной. В нашем случае это будет следующий
код: Request.QueryString("sign") Он
извлекает из строки запроса, переданной методом GET, параметр sign. Если же
вы передаете параметры методом POST, код будет несколько иным: Request.Form("sign") Вот
и все. Мы создали переменную SQL-запроса и теперь можем ее использовать. Откройте
в списке Database Items ветви Tables и Guestbook и выберите
пункт Sign. Поставьте текстовый курсор в поле ввода SQL после текста "WHERE
Sign=ID" и нажмите кнопку WHERE. Содержимое поля ввода SQL станет
таким: SELECT
Content, Desc, Color FROM Guestbook, Signs WHERE Sign= ID AND Sign Поставьте
текстовый курсор после текста "AND Sign" и введите вручную текст =sign.
Таким образом, окончательный SQL-запрос будет выглядеть так: SELECT
Content, Desc, Color FROM Guestbook, Signs WHERE Sign=ID AND Sign=sign Все,
наш новый запрос создан. Можете нажать кнопку ОК. Перед этим, однако,
лучше нажать кнопку Test, чтобы проверить правильность задания запроса.
Так, на всякий случай. Теперь
сохраните страницу Guestbook_table.asp и опубликуйте ее на Web-сервере вместе
со страницей Selector.htm. После этого откройте в Web-обозревателе страницу
Selector.htm, набрав в строке адреса следующее: http://localhost/HTMLs/Selector.htm Пощелкайте по ссылкам и посмотрите, что из этого получится. Если же серверная страница упорно выдает вам список всех записей гостевой книги, то просто нажмите кнопку обновления вашего Web-обозревателя.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||