|
Программирование >> Руководство по созданию web приложений
ver rs; rs=cmd. Данный метод возвращает набор записей, в результате вы- полнения команды. На сценарий формирует в окне фрейма таблицу с ями Она создается в путем последова- тельного просмотра записей rs MoveNext. отобрали для <ТАВ1Е - while <а Удалить из корзины</А> </ТАВ1Е> Чтобы -а . передумавший покупать книгу, смог удалить ее из кор- зины, мы вставляем рядом с названием каждой книги ссылку следующего вида: <а S f=-asiorcJe-.asiaI0=<i=r5-rielasibeuk8in ;t> taraet-rhattOJi-> Удалить Здесь выполняется вызов страницы в качестве ра эта страница получает идентификатор удаляемой книги. Что же касается покупателя, то эту информацию ci:iaiiii(ia delorder.asp добывает самостоятельно из переменной сеанса с именем UsifrlD. После завершения таблицы сценарий закрывает набор запи- сей и ненужное больше с источником данных: В любом случае нужно подготовить ..а хранимой процедуры ListOrders, возвращающую набор записей для книг, отобранных данным посе-Эта только один параметр идентифи- катор посетителя Запуск процедуры с помощью метода Execute: = ListOrders ; = connect; Иа странице order.asp Бы.н.ии.кисядве хранимые процедурыс именами AddToOrder и i.lstOrclers. Расскажем о том, как они работают. Исходный текст процедуры AddToOrder, для новых книг в корзину покупателя, показан в листинге 4-16. Листинг 4-16 Вы найдете в файле еМШоо! it, на прилагаемом к книге компакт-диске. В рамках этой пр III последовательно выполняются обращения к двум таблицам - к таблице client, содержащей сведения о посетителях, и к таблице orders, в которой хранятся личные корзины покупателей. Сначала процедура AddToOrder должна определить идентификатор записи в таблице clients, соответствующий идентификатору покупателя, передаваемому в процедуру через входной параметр fClleritll). Это задачу рещает первый оператор SETECT. Найденный идентификатор сохраняется в переменной D тина INT и затем используется при добавлении записей в таблицу orders: CREATE PROCEDURE AddToOrder §bookslD (50.), [D VI ;.. - ; AS DECLARE INT SELECT FROM clients WHERE Второй оператор SETECT определяет стоимость выбранной книги по ее идентификатору и записывает в переменную §bookPrice: DECLARE . . - MONEf SELECT FROM books WHERE bookslD=@bookslD Оператор INSERT добавляет в таблицу orders новую запись, заполняя поля идентификатора выбранной книги booksID, идентификатора покупателя ClientID, поместивщего [< н inv в корзину, и стоимости книги b ookPrice: INSERT orders (booksID, ClientID, bookPrice) VA L il .ES ( : 1111D, .fljn oh P r k.e) Заметим, что стоимость книги легко получить по ее идентификатору из таблицы поэтому нет никакой хранить ее в таблице orders. Мы создали такую избыточность, для того чтобы облегчить получение общей книг, которая потребуется на этапе оплаты товара. Исходный текст хранимой процедуры ListOrcjirs Вы найдете в листинге Листинг 4-17 хранится в Файле ch4\BoolcShcspScripts\dbcs.UetOrelers,PI на прилагаемом ккниге компакт-диске. Она получает единственный входной параметр - идентификатор покупателя, содержимое корзины которого : извлечь из таблицы orders. Эта операция выполняется в два приема. liiiaia.ic процедура ListOrders получает идентификатор записи нчкупатг-ля. обращаясь к содержимому Этот идентификатор сохраня- ется в переменной CREATE . . - Li.tiiid-i. - - AS iDECLAF.E INT SELEVT WHEI ID FROM clients Затем - оператор SELECT, возвращающий информацию о -заинтересовавщих данного посетителя. Она получается с помощью объединения таблиц orders и books оператором JOIN: SELE.T - - - - ..... iMokiS. Pr:ice FROM orders JOIN books ON , : . WHERE . Удаление книги из корзины Если посетитель : покупать книгу, отобранную в корзину, он может удалить ее оттуда, щелкнув ссылку Удалить из корзины, расноложенную рядом с книгой. При этом будет загружена страница delorder.asp 4-18). Листинг 4-18 Вы найдете в файле сМШоок на прилага- емом к книге компакт-диске. Первое действие, выполняемое сценарием сразу после загрузки страницы, - нолучение из неременной сеанса . и сохране- ние этого идентификатора в : ... ClientID: Далее сценарий хранимую процедуру DelOrder, передавая ей два параметра: connect = . .: - = 15; - = If); Г-li гЛ-Г ; - = Jin-ct; anVarChai, adPaiaiiilnput, : . a..... aiiVarChar, adParamlnput, Первый параметр с именем ClientID хранит только что упомянутый идентификатор посетителя, книгу из своей корзины. Второй параметр называется bookID и передается в страницу delorder.asp из страницы Он содержит идентификатор удаляемой книги. После удаления книги из корзины нужно обновить правый нижний фрейм, отображающий содержимое корзины нокупателя. Мы это делаем с помощью метода Redi rect объекта Response: Baspoase.Rediгасt( arder.aep7FraST=1 1: Обратите внимание, что нри загрузке страницы order.asp мы указываем параметр EIRST, [Kiuiiiaii единице. Как Вы это значение - -
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |