Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 5132 / 387 | Оценка: 4.23 / 3.83 | Длительность: 28:12:00
Специальности: Программист, Менеджер
Лекция 6:

Объекты ADO (продолжение)

Пример работы с объектами ADO при создании Web-документов

Последний пример в этой главе я хочу посвятить хотя бы беглому знакомству использования объектов ADO в сценариях, написанных на VBScript. Я рассмотрю пример, представляющий фрагмент создания Web-узла. Создаваемый узел является активным, он может реагировать на действия пользователя, используя для этих целей технологию ASP(Active Server Page) страниц. Напомню, эти страницы содержат сценарии, которые собственно и определяют реакцию на действия пользователя. Особенностью ASP-страниц является то, что код сценариев выполняется на сервере и пользователю пересылается статическая страница, содержащая не код, а результат его выполнения.

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

Web-страница, содержащая форму, отсылаемую на сервер

увеличить изображение
Рис. 6.13. Web-страница, содержащая форму, отсылаемую на сервер

Приведу теперь текст ASP-страницы, которая выполняется на сервере:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>vbazu</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Theme" content="none, default">
<meta name="Microsoft Border" content="none, default">
</head>

<body>

<table border="0" width="100%" bgcolor="#0000FF" cellspacing="0" cellpadding="0" height="81">
	<tr>
	<td width="100%" height="62">
		<p align="center">
		<b><font face="Bradley Hand ITC" size="7" color="#FFFFFF">BiVANT&nbsp;&nbsp;</font></b></td>
	</tr>
	<tr>
	<td width="100%" bgcolor="#FFFF00" height="19">
	<font color="#0000FF"><b><a href="index.htm">BiVANT</a>&nbsp;
		<a href="книги.htm">Книги</a>&nbsp; <a href="статьи.htm">Статьи</a>&nbsp;
		<a href="учебники.htm">Учебники</a>&nbsp; <a href="обучение.htm">Обучение</a>&nbsp;
		<a href="чайничек.htm">Чайничек</a>&nbsp; 
		<a href="Дело%20отца/дело_отца.htm">Дело_Отца</a>&nbsp;
		<a href="онас.htm">О нас</a>&nbsp; <a href="авторы.htm">Авторы</a></b></font></td>
	</tr>
</table>

<p>
<%
'Переменные, задающие поля формы
Dim	DAvtor, DFam, DName,	DVid, DGorod, Dmail, DOtziv, DVopros, DPriob
	'Передача значений полей формы 
	DFam= Request.Form("Fam")
	DName = Request.Form("Name")
	 DVid= Request.Form("Vid")
	 DGorod =Request.Form("Gorod")
	 Dmail= Request.Form("mail")
	 DOtziv= Request.Form("Otziv")
	 DPriob= Request.Form("Priob")
	 DVopros =Request.Form("Vopros")
	DAvtor = Request.Form("Avtor")
	
'Объявление объектов ADO - Connection, Command, Recordset 
	Dim Cconnect, Cmd, Records
	Dim StrSQL	'строка запроса

	' Установить связь с базой данных 
	 Set Cconnect =Server.CreateObject("ADODB.Connection") 
	 Cconnect.ConnectionString= "provider=microsoft.jet.oledb.4.0;" & 
	 	"data source ='d:\Bivant\svyaz.mdb'"
	 Cconnect.Open

'Формирование строки запроса
StrSQL = "Select * From VoprosOtvet"

'Создание команды и задание свойств объекта Command
Set Cmd =Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Cconnect
Cmd.CommandText = StrSQL 
Cmd.CommandType =1

'Работа с RecordSet
Set Records =Server.CreateObject("ADODB.Recordset")
With Records
	'Открытие обновляемого объекта RecordSet
	.Open Cmd,,2,3 
	
' Добавление записи
	.MoveFirst
	.AddNew
	.Fields("Автор")=DAvtor
	.Fields("Вопрос") = DVopros 
	.Fields("Отзыв") = DOtziv
	.Fields("Фамилия") =DFam
	.Fields("Имя") =DName 
	.Fields("Город") = DGorod 
	.Fields("Вид_деят") =DVid
	.Fields("Почта") =Dmail
	.Fields("Приобрести") =DPriob
	.Update 
End With	
 
%>

<b>Спасибо за Ваш интерес к нашей тематике!</b>

</p>

<p><b>Мы постараемся учесть Ваши пожелания и
своевременно ответить на вопрос. </b>

</p>

</body>

</html>

Приведу теперь комментарии к этому тексту:

  • Текст написан на HTML и представляет содержание ASP-страницы, в задачу которой входит обработать посылаемую пользователем форму. Большая часть текста задает сценарий, написанный на VBScript, и именно эту часть я и буду комментировать. Для удобства восприятия код сценария подсвечен.
  • Язык VBScript является нетипизированным языком, все переменные принадлежат к одному универсальному типу Variant, поэтому для переменных, соответствующих полям формы не задан тип.
  • Объект ASP Request позволяет передать значения из полей формы в переменные VBScript.
  • Затем начинается работа с объектами ADO, которые создаются на сервере методом CreateObject объекта Server.
  • Вся остальная часть работы с объектами ADO - создание соединения с базой данных, формирование команды, набора записей, добавление новой записи к объекту Recordset и обновление базы данных, выполняется на VBScript совершенно аналогично тому, как это делалось на VBA. В результате выполнения этого сценария база данных действительно изменяется и данные, посланные в форме, будут сохранены в соответствующей таблице базы данных.

На этом я закончу разговор о компонентах ADO, представляющих универсальный способ взаимодействия с самыми разными источниками данных.

Ольга Гафарова
Ольга Гафарова

Добрый день. Подскажите формулы при решении задачи на рис. 2.2 в лекции №2. Закон Ома, какие должны использоваться формулы для I и R

Курс: Основы офисного программирования и документы Excel

Серегй Лушников
Серегй Лушников