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

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


</td><tr> <tr><td

1 в корзину</А>

Annotation

extC);

catch (ex)

.;/TABI,F>

Для ссылки на поля набора записей мы используем соответствующих

столбцов, из которых формируются строки набора. полей

вставляется в ячейки формируемой таблицы с конструкций вида

Для каждой книги мы вставляем в создаваемую таблицу ссылку на страницу order.asp, которая добавить книгу в корзину покупателя:

<а hret= oi-cisr.asc.?lU=<i=rs Г1е1оз{ осоке:i:rit>aFIIiST=r)-ta-gst rtjOttoiif>rio/io iTb в i<.o()3i/py</A>

Когда пользователь щелкнет ссылку, начнет загружаться страница order.asp. При этом ей будут . два параметра - идентификатор книги ID и флаг FIRST.

Параметр ID содержит . . по которому найти книгу в

таблице books нащей базы данных. Без него мы бы не знали, какую нужно добавить в корзину. Что же касается флага FIRST, то его значение, равное О, свидетельствует, что страница order.asp загружается для добавления новой книги в список отобранных книг, а не для простого просмотра этого списка.

Если же записи есть, мы . цикл формирования отчета в виде

цы, содержащей ноля извлеченного набора записей.

В цикле мы последовательно : строки набора записей, переме-

щаясь по ним при помощи метода определенного в объекте Recordset.

Условием заверщения цикла является равенство свойства г s. EOF значению True;

<h?>(:errjiH в пвод1же</г.2> B0RDER=1>

while

Х>

Publislier



Когда обработка набора записей закончена, мы должны закрыть imn набор методом Close объекта Recordset:

Г5,С1озе();

Вслед за этим надо закрыть и соединение с источником данных, вызывая метод Close объекта Connect ion:

Исходный текстхранимой процедуры ListBooks, запускаемой iia выполнение серверным сценарием страницы . i в листинге 4-14.

Листинг 4-14 Вы найдете в файле LIstiooka.PBC на

прилагаемом к книге жомпа;:

Эта процедура очень проста. С . SELECT она выбирает не-

сколько из таблицы books:

CREATE PROCEDURE ListBooks AS

SELECT bOC*,s,ID, Author. Title, Publisher, Price, AdoSate. . .fincrtatiori FROM books

В результате ее работы создается набор записей, из которого формируется таблица со списком книг, имеющихся в продаже.

Добавление книги в корзину

Для того чтобы добавить книгу а свою аацашау. нокупатель щелкает ссылку Положить в корзину, расноложенную в строке с названием этой книги. Об этой ссылке мы рассказывали в предыдущем разделе: она вызывает страницу order.asp с параметрами ID и FIRST.

Па самом деле страница order.asp выполняет двойную функцию. Когда мы вызываем се с параметром f равным 1, она просто отображает содержимое корзины покупателя. Если же значение равно О, перед таким

отображением происходит добавление выбранной книги в корзину.

В следующем разделе мы рассмотрим выполнение и той, и другой операции.

Страница просмотра содержимого корзины

Особенностью страницы просмотра содержимого корзины является то, что она может одно или два обращения к базе данных в зависимости от зна-

параметра FIRST. Если этот параметр равен О, сценарий вначале запускает хранимую процедуру Addl : добавляющую выбранную книгу к корзине, а затем процедуру EistOrders, для просмотра содержимого

корзины.

Рассмотрим исходный текст . order.asp, : в листин-

ге 4-15.

Листинг 4-15 Вы найдете в файле ch4\BookShopClient\order.asp на прилагае-к книге компакт-диске.

Для обработки . . возникающих нри обращениях к базе данных, мы

единый блок catch. Поэтому блок try также один. Сразу после . как страница получает сценарий получает

идентификатор пользователя и сохраняет его в локальной переменной с



= MlTHia-l ; = rMnnOrt;

:iientID , adVarChar,

нам нужно отобразить в правом нижнем фрейме главного окна приложения покупателя обновленное содержимое корзины. Чтобы не устанавливать повторное соединение с источником данных (оно уже установлено для запуска хранимой процедуры мы повторно анализируем параметр FIRST. Это

позволяет время и ресурсы . за счет исключения повтор-

ного соединения с источником данных:

== 1)

connect ):

- = Ш;

Этот - для отбора тех - в таблице orders,

которые имеют отношение к данному покупателю.

Далее сцеиарий анализирует содержимое . сеанса с именем FIRST.

Если оно не равно 1, то считается, что вызвана для добавления новой

книги в покупателя.

В этом случае мы извлекаем идентификатор ID добавляемой книги и сохра-его в локальной переменной а затем устанавливаем соединение с

источником данных обычным способом.

Затем мы команду свй как объект Command и готовим imu;mnvhi для

запуска хранимой процедуры AddToOrder. Этой процедуре нужно передать два входных параметра - идентификатор добавляемой книги booksID и идентификатор покупателя ClientID, добавившего книгу. После этого itu.Man.iji запускается на выполнение методом Execute: != 1)

var connect; cmd;

connect = - . );

= Il;



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

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