Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Работа с базами данных




Из ASP можно легко и просто работать с любыми базами данных. Это делается через две промежуточные технологии: ODBC и ADO.

ODBC позволяет организовать доступ к любым базам данных через унифицированный интерфейс с помощью языка SQL. Специфика конкретных СУБД учитывается при помощи специальных драйверов БД. Такие драйверы существуют для всевозможных СУБД (в частности SQL Server, Oracle, Access, FoxPro). Поддержка ODBC обеспечивается на уровне операционной системы Windows (NT). Настройка - через Control Panel/ODBC. Базовым понятием является источник данных (data source). Источник данных - это совокупность сведений о базе данных, включая ее драйвер, имя компьютера и файла, параметры. Чтобы пользоваться базой надо создать источник данных для нее. Важно, чтобы источник данных был "системным", в отличии от "пользовательского". После этого надо лишь знать имя источника данных. [В настоящее время ODBC отступает перед натиском технологии OLE DB. На практике это однако практически ничего не изменяет. Вместо имени источника данных нужно использовать Connection String, в которой указывается имя ODBC-драйвера и все его параметры.]

ADO - это совокупность объектов, доступных из ASP, позволяющих обращаться к источнику данных ODBC [или OLE DB]. Фактически нужны лишь 2 объекта - Connection, представляющий соединение с базой данных и Recordset, представляющий набор записей, полученный от источника. Сначала необходимо открыть соединение, потом к нему привязать Recordset, потом, пользуясь методами Recordset'а, обрабатывать данные. Вот пример:

<%

Dim Conn, RS, strSQL, strOut

strOut = ""

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "Data-Source-Name"

Set RS = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM AGENTS ORDER BY USER_ID"

RS.Open strSQL, Conn

RS.MoveFirst

strOut = strOut & "<P>Here is the data:"

strOut = strOut & "<TABLE border=""1"">"

strOut = strOut & "<TR><TH>USER_ID</TH><TH>Name</TH></TR>"

Do While Not RS.EOF

strOut = strOut & "<TR>"

strOut = strOut & "<TD>" & RS.Fields("USER_ID") & "</TD>"

strOut = strOut & "<TD>" & RS.Fields("NAME") & "</TD>"

strOut = strOut & "</TR>"

RS.MoveNext

Loop

strOut = strOut & "</TABLE>"

strOut = strOut & "<HR>"

strOut = strOut & "That's it!"

RS.Close

Set RS = Nothing

Conn.Close

Set Conn = Nothing

Response.Write strOut

%>

Если команда SQL не возвращает данных, recordset не нужен, надо пользоваться методом Conn.Execute(SQL_COMMAND).

Если Вы хотите вызывать хранимые процедуры сервера БД с параметрами, нужно воспользоваться объектом Command, который в свою очередь содержит объекты Parameter.

Переменные HTTP

Запрос от браузера, кроме запрашиваемой страницы несет еще некоторые данные. Эти данные, например, IP-адрес клиента, доступны через специальные переменные объекта Request. IP-адрес - Request("REMOTE_ADDR"). Другие - см. документацию (ASPSamp\Samples\srvvar.asp).

Переадресация

Очень легко написать на ASP скрипт, который будет производить некоторые расчеты, и в зависимости от результатов переадресовывать браузер на разные URL (например, подставлять нужный баннер). Делается это так:

Response.Redirect "somewhere.html"

Только надо следить, чтобы до выполнения команды redirect ничего не было записано в Response (даже комментарии HTML).

Электронная почта

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

<FORM action="mailto:user@host.com">

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

Для этого существуют внешние компоненты, есть и бесплатные. Например, компонента Jmail от Dimac. Все, что для нее нужно - это адрес SMTP-сервера. Вот пример ее использования:

On Error Resume Next

Set Mailer = Server.CreateObject("JMail.SMTPMail")

If err<>0 Then

Response.Write("Невозможно создать объект")

Else

Mailer.ServerAddress = SMTP_SERVER

Mailer.Sender = EMAIL

Mailer.Subject = "Service: Delivery order"

Mailer.AddRecipient ADMIN_EMAIL

Mailer.Body = "------------------------------------" & chr(10)

Mailer.AppendText "body text"

Mailer.Execute

If err<>0 Then

Response.Write("Mail error")

Else

Response.Write("Mail send Ok")

End If

End If

Set Mailer = Nothing

 

Объект

Объект (Object) - это простой объект, методами, свойствами и событиями которого вы можете управлять. Метод - это процедура или просто набор команд, сообщающих объекту, что нужно выполнить некоторую задачу. Свойство - это некоторый вид параметра объекта. Событие - это сигнал, подаваемый, если с объектом что-то происходит. И методы, и свойства, и события разработчик выбирает сам, исходя из потребностей задачи. Так, если в вашей программе нужно отследить время окончания работы, то имеет смысл обращать внимание на событие, сигнализирующее об этом. В противном случае эта информация бесполезна.

Объектная модель

Рассмотрим объект ActiveX Label (объект и элемент управления для VBScript фактически означают одно и то же). Он состоит из свойств и имеет один метод. Некоторые из его свойств включают заголовок (Caption), цвет фона (BackColor), цвет шрифта (ForeColor), размер (FontSize) и стиль шрифта (FontName). Его методом является About Box, отображающий при вызове окно с информацией об ActiveX. Событием для Label является перемещение указателя мыши над Label. Существует специальный тег <OBJECT> для вставки объектов в HTML-страницу. В его синтаксисе используются два тега: <OBJECT> и <PARAM>. Первый - для определения используемого объекта, а также других главных параметров, связанных с объектом; второй - для установки разных свойств объекта, определенного тегом <OBJECT>, во вложенных тегах <PARAM>. Атрибуты тега <OBJECT>:

id - определяет имя объекта в документе

classid - Класс, к которому принадлежит объект; может быть уникальным универсальным идентификатором или другой группой классов типа Java. Для элементов управления ActiveX - это идентификационный номер класса в системном реестре Вашей системы

data - адрес, откуда объект должен получать данные; может включать данные для определения всех свойств классов

codebase - адрес, где находится код объекта

type - тип Internet MIME (например: application/x-oleobject будет определять OLE-объект, который должен использоваться как код)

height - высота границы объекта

width - ширина границы объекта

Атрибуты тега <PARAM>

name - определяет имя объекта, которое должно использоваться

value - определяет значение, которое должно быть присвоено свойству объекта, определенному в NAME

Теперь посмотрим на исходный текст, приведенный в примере для элемента управления - Label.

<HTML>

<HEAD>

<TITLE>Пример, демонстрирующий объект ActiveX</TITLE>

</HEAD>

<BODY bgcolor="steelblue">

<OBJECT id="mylabel" width="100" height="51" classid="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2">

<PARAM name="_ExtentX" value="2646">

<PARAM name="_ExtentY" value="1349">

<PARAM name="Caption" value="This is label 1">

<PARAM name="Angle" value=0>

<PARAM name="Alignment" value=4>

<PARAM name="Mode" value=1>

<PARAM name="FillStyle" value=0>

<PARAM name="FillStyle" value=0>

<PARAM name="ForeColor" value="#000000">

<PARAM name="BackColor" value="#C0C0C0">

<PARAM name="FontName" value="Arial">

<PARAM name="FontSize" value=12>

<PARAM name="FontItalic" value=0>

<PARAM name="FontBold" value=0>

<PARAM name="FontUnderline" value=0>

<PARAM name="FontStrikeout" value=0>

<PARAM name="TopPoints" value=0>

<PARAM name="BotPoints" value=0>

</OBJECT>

</BODY>

</HTML>

Для тега <OBJECT> определено несколько параметров, которые предоставляют полезную информацию относительно используемого объекта. Сначала определяется имя объекта "mylabel", затем свойства: ширина и высота. Далее элемент управления идентифицируется параметром "CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" точно так, как он обозначается в системном реестре операционной системы. Вложенные теги <PARAM> содержат свойства объекта Label. Атрибут name используется, чтобы определить, какое свойство должно использоваться, а value - для связи значения с этим свойством. Весь этот процесс автоматизирует программа ActiveX Control Pad. В ней есть окно, позволяющее корректировать свойства любого элемента управления.




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2019 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных