Корпоративные базы данных - статьи

       

Rates_edit.htx



<!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">

<html>

<head>

<meta http-equiv="Content-Type"



content="text/html;
charset=windows-1251">



<meta name="GENERATOR"
content="Microsoft FrontPage 2.0">

<title>Untitled
Normal Page</title>

</head>

<body>

<p>&nbsp;</p>

<form action="rates_submit.idc?kurs1=<%txtKurs%>&amp;id1=<%id%>"

method="POST"
name="rates_edit"

<%txtkurs%>"&amp;id1="<%id%>&quot;">

<p><font
face="Times New Roman CYR">Код валюты- <strong><%kod%></strong>

</font></p>

<p><font
face="Times New Roman CYR">Курс <input

type="text"
size="20" name="txtKurs" value="<%kurs%>"></font></p>

<p><input
type="submit" name="B1"

value="Передать
изменения"></p>

</form>

</body>

</html>

Результат приводится на рис.9. Далее результаты редактирования
курса передаются обратно в базу данных, т.е. файл rates_submit.idc
будет, очевидно, содержать оператор update, а соответствующий
.htx- переход на новую страницу или возвращение обратно на просмотр
списка и т.д.

Необходимо отметить, что соответствующий источник
данных (в нашем случае rates) должен быть создан в ODBC-менеджере
как системный, иначе он не будет виден другим пользователям.



Рис.9

4. Active Data Objects

Когда речь заходит о компонентах ActiveX, как правило,
неявно подразумевается клиентская часть приложения. Microsoft
Active Server Pages (ASP)- активные серверные страницы- представляют
собой инструмент для эффективной разработки серверных Web-приложений,
интегрирующих в своем составе HTML-код, VBScript и компоненты
ActiveX. Это означает, что в уже существующие наработки легко

могут быть встроены фрагменты кода на VBScript или JavaScript,
а также вызовы соответствующих объектов ActiveX. Как, наверное,
известно, VBScript- это сужение хорошо знакомого языка программирования
Visual Basic на область создания Web-страниц. Основным идейным
отличием VBScript от VB, на мой субъективный взгляд, служит то,
что VBScript не содержит операторов файлового ввода-вывода и вообще
средств прямого доступа к операционной системе (напрашиваются
параллели, если Java сопоставить с С/С++, не правда ли). Кроме
этого, в VBScript существует только один тип переменных- variant,
отсутствуют декларативные константы и т.п. Наличие привычного
синтаксиса языка высокого уровня существенно упрощает создание
HTML-страниц. См. классический пример:

<HTML>

<BODY>

<% For i = 3 To 7 %>

<FONT SIZE=<% =
i %>>

Hello World!<BR>

<% Next %>

</BODY>

</HTML>

Кроме этого, в состав среды активных серверных страниц
(ASP Framework) входят следующие 5 основных встроенных объектов.

  • Application (приложение)- для
    разделения информации между всеми пользователями данного приложения
  • Request (запрос)- для получения тех значений,
    которые броузер клиента передает на сервер по HTTP-запросу, т.е.,
    грубо говоря, для получения информации о пользователе или от пользователя
  • Response (ответ)- для передачи информации клиенту
  • Server (сервер)- предоставляет возможность обращения
    к методам и свойствам сервера для управления средой исполнения
    ASP
  • Session (cеанс)- для хранения информации, относящейся
    к данной пользовательской сессии.


Подробнее узнать о назначении и использовании объектов
ASP, их методах и свойствах можно, обратившись к документации,
например, Active Server Pages Roadmap.

Помимо базовых объектов, ASP поддерживают многочисленные
компоненты ActiveX, которые упрощают создание и значительно повышают
функциональность активных Web-страниц. К ним относятся различные
элементы управления, компоненты, создающие содержание приложения,


компоненты ввода/вывода в файл (чего, как мы помним, не было в
VBScript) и многие другие. Но нас в первую очередь будут интересовать
компоненты, позволяющие организовать доступ к базам данных, или
Active Data Objects (ADO).



Рис.10

В отличие от хорошо известных Data Access Objects
(DAO) или Remote Data Objects (RDO) ADO имеют менее иерархически
строгую структуру (см.рис.10) и потому более удобны при работе
с базами данных.

Например, публикация нашей таблицы с курсами валют
при помощи ASP и ADO может быть выполнена следующим образом.

Ratesado.asp

<% if IsObject(Session("conn"))
then

set c=Session("conn")

else

set c=Server.CreateObject("ADODB.Connection")

c.Open "rates","sa",""

set Session("conn")=c

end if

set RS=c.Execute("select
* from rates")%>

<!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">

<html>

<head>

<meta http-equiv="Content-Type"

content="text/html;
charset=windows-1251">

<meta name="GENERATOR"
content="Microsoft FrontPage 2.0">

<title>Курсы валют</title>

</head>

<body>

<p><font size="5"
face="Times New Roman CYR"><strong>Курсы

валют</strong></font></p>

<table border="1">

<tr>

<th align="left"><font
face="Times New Roman CYR">Код</font></th>

<th align="left"><font
face="Times New Roman CYR">Курс</font></th>

</tr>

<% do while not RS.EOF
%> <tr>

<td><%
id1=RS("id") %> <a

href="http://ntalexejs/aaa/ratesado_edit.asp?id1=<%=id1%>"><%=RS("kod")%></a></td>

<td><%=RS("kurs")%>
</td>

</tr>

<% RS.MoveNext

loop %></table>



</body>

</html>

Получим результат, аналогичный рис.7. Обратите внимание
на передачу идентификатора соединения между разными скриптами
с помощью переменных класса Session. Обновление курса валюты организуем
следующим образом:

Ratesado_edit.asp

<%id1=Request.QueryString("id1")

RS=Session("conn").Execute("select
kod,kurs from rates where id="&id1)

kurs1=RS("kurs")%>

<!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">

<html>

<head>

<meta http-equiv="Content-Type"

content="text/html;
charset=windows-1251">

<meta name="GENERATOR"
content="Microsoft FrontPage 2.0">

<title>Код валюты</title>

</head>

<body>

<form action="ratesado_submit.asp"
method="POST" name="frm">

<input type="hidden"
name="hid" value="<%=id1%>"><p>Код

валюты <strong><%=RS("kod")%>
</strong></p>

<p>Курс<strong>
</strong><input type="text" size="14"

name="txtKurs"
value="<%=kurs1%>"><strong> </strong></p>

<p><input
type="submit" name="B1"

value="Передать
изменения"></p>

</form>

</body>

</html>

Приведенный код вполне может быть воспроизведен,
и если он вдруг заработает , то мы получим страницу типа той,
что изображена на рис.9. Наконец, запрос на обновление оформим
как отдельный asp:

Ratesado_submit.asp

<%Session("conn").Execute
"update rates set kurs=" & Request.Form("txtKurs")
& "where id=" & Request.Form("hid")

Response.Redirect("ratesado.asp")%>

Последний оператор осуществляет автоматический переход
на просмотр таблицы курсов.ADO являются универсальным инструментом
доступа к данным. Вы можете без изменений использовать интерфейс
ADO из данного примера при работе с базами данных на VB, Visual
FoxPro и т.д. Наконец, с помощью ADO, в свою очередь, могут быть
построены пользовательские компоненты, для обращения к серверу
баз данных как со стороны "толстого" (Win32), так и
со стороны тонкого (Internet Browser) клиента. Функции обеспечения
целостности транзакций, сервисы безопасности и согласованной работы
компонент в распределенном приложении может взять на себя Microsoft
Transaction Server (cм.рис.11), но это уже тема совсем другого
рассказа.



Рис.11



[]
[]

Содержание раздела