назад | содержание | вперед Взаимодействие Internet-приложений с базами данных Усложним наш пример. Теперь при первом обращении к ASP-странице будем отображать содержимое таблицы customer базы данных, а при нажатии на кнопку Добавить будем посылать все ту же форму для ввода данных о покупателе, однако полученные результаты будем заносить опять же в базу данных. Для доступа к базе данных будем использовать технологию ADO, поэтому откройте окно References нашего проекта и добавьте ссылки на библиотеки Microsoft ActiveX Data Objects 2.1 Library и Microsoft ActiveX Data Objects Recordset 2.0 Library (рис. 19.17).
Рис. 19.17. Добавление ссылок на библиотеки ADO Теперь нам потребуется обрабатывать событие webciass_initialize для выполнения операций соединения с базой данных и открытия Recordset и событие WebClass_Terminate для закрытия объектов Recordset иConnection. Подпрограмма viewCustomers () будет посылать Web-браузеру в виде HTML-потока содержимое таблицы Customer базы данных, а также размещать объект типа Submit, при нажатии на который будет производиться вызов формы для ввода информации и последующего добавления новой записи о покупателе. Ранее мы уже говорили о таком способе отправки информации на Web-сервер. В данном случае никакой информации отправлено не будет, нам важно только то, чтобы сервер получил запрос с параметром begininput и передал Web-браузеру шаблон для ввода информации о покупателе. Обработка события webciass_BeginRequest изменена таким образом, чтобы при первом обращении показывать содержимое таблицы Customer и кнопку Добавить, при обращении к ASP-странице с параметром inputCustomer принимать информацию и добавлять полученные сведения в базу данных, а при обращении с параметром begininput предоставлять форму для ввода информации о покупателе: Option Explicit Option Compare Text Dim mcnnCustomer As ADODB.Connection Dim mrstCustomer As ADODB.Recordset Private Sub WebClass_BeginRequest() If Request.QueryString.Count > 0 Then 'получены данные If Request.QueryString.Item(1) = "ihputCustomer" Then 'записать полученные данные в таблицу With mrstCustomer .AddNew .Fields("ccompany").Value = Request.Form("txtccompany") .Fields("clastname").Value = Request.Form("txtclastname") .Fields("cfirstname").Value = Request.Form("txtcfirstname") . Fields ("csecondnairie") .Value = Request.Form("txtcsecondname") . Fields("czip").Value = Request.Form("txtczip") . Fields("ccountry").Value = Request.Form("txtccountry") .Fields("cregion").Value = Request.Form("txtcregion") .Fields("ccity").Value = Request.Form("txtccity") .Fields("caddress").Value = Request.Form("txtcaddress") .Update End With ViewCustomers End If 'запрос на добавление записи If Request.QueryString.Item (1) = "begininput" Then 'отобразить форму для ввода Customer.WriteTemplate End If Else ViewCustomers End If End Sub 'просмотр всех записей Private Sub ViewCustomers () With Response .Clear .Write "<HTML>" .Write "<P align=center> Список покупателей </Р>" .Write "<FORM NAME=frmOutputCustomer METHOD=POST ACTION=default.asp?mode=begininput>" .Write "<INPUT name=btnAdd type=submit уа1ие=Добавить>" If Not (mrstCustomer.BOF And mrstCustomer.EOF) Then mrstCustomer.MoveFirst .Write "<TABLE border=l>" .Write "<TR>" .Write "<TD><P align=center> Компания </TD>" .Write "<TD><P align=center> Фамилия </TD>" .Write "<TD><P align=center> Имя </TD>" .Write "<TD><P align=center> Отчество </TD>" .Write "</TR>" Do Until mrstCustomer.EOF .Write "<TR>" .Write "<TD>" & mrstCustomer.Fields("ccompany") & "</TD>" .Write "<TD>" & mrstCustomer.Fields("clastname") & "</TD>" .Write "<TD>" & nirstCustomer.Fields("cfirstname") & "</TD>" .Write "<TD>" & mrstCustomer.Fields("csecondname") & "</TD>" .Write "</TR>" mrstCustomer.MoveNext Loop .Write "</TABLE>" End If .Write "</FORM>" .Write "</HTML>" End With End Sub Private Sub WebClass_Initialize () Set mcnnCustomer = New ADODB.Connection mcnnCustomer.CursorLocation = adUseClient mcnnCustomer.Provider = "SQLOLEDB.1" mcnnCustomer.CommandTimeout = 300 "строка для соединения, имя пользователя, пароль mcnnCustomer.Open "Data Source= MYSERVER; Initial Catalog=SALES", "SYSADM", "SYSADM" Set mrstCustomer = New ADODB.Recordset mrstCustomer.Open "Customer", mcnnCustomer, adOpenKeyset, adLockOptimistic, adCmdTable End Sub Private Sub WebClass Terminate() mrstCustomer.Close Set mrstCustomer = Nothing mcnnCustomer.Close Set mcnnCustomer = Nothing End Sub Запустите проект. Перед вами достаточно простое Internet-приложение, обменивающееся информацией с базой данных и предоставляющее пользователю Web интерактивные средства для работы с этой информацией.
назад | содержание
| вперед
Поделитесь этой записью или добавьте в закладки | Полезные публикации |