назад | содержание | вперед

Взаимодействие 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 интерактивные средства для работы с этой информацией.

Замечание

Реальные Internet-приложения гораздо сложнее. Однако в нашем примере мы попытались дать тот минимальный материал, который поможет вам в дальнейшем при освоении принципов проектирования для World Wide Web.

назад | содержание | вперед