КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Создание фильтровА теперь можно приступить к созданию фильтра, отбирающего записи из таблицы в набор. Помните, как мы создали сложный набор данных? Если не помните, рассмотрим код 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-обозревателя.
|