Программирование >>  Руководство по созданию web приложений 

1 ... 54 55 56 [ 57 ] 58 59 60 ... 141


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 единице. Как Вы это значение - -



1 ... 54 55 56 [ 57 ] 58 59 60 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика