|
Программирование >> Руководство по созданию web приложений
<а </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;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |