Доступ к базам данных с помощью языка ASP . 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Доступ к базам данных с помощью языка ASP .



Active Server Pages — это обычные страницы, которые содержат скрипты, выполняющиеся на сервере наряду с обычным HTML-кодом. ASP изначально создавалось прежде всего для Microsoft IIS на платформе Windows + СУБД SQL Server. В настоящее время выполнение ASP -скриптов поддерживается и на других платформах (например, Web -сервером Apache 2 под Linux). ASP позволяет перемешивать HTML-код с программным кодом, что, в свою очередь, позволяет легко и удобно встраивать серверные программы в страницы, причем первые будут выполняться только на стороне сервера. Еще одним мощным средством является поддержка ActiveX.

ASP использует технологию Active Data Objects (ADO) для поддержки языка запросов к базам данных SQL. Ранее рассмотренная нами технология называлась DAO (Data Access Objects - объекты доступа к данным) и являлась стандартной для VB, Access и других сред, работающих с ядром доступа к данным Microsoft Jet. DAO плохо подходит для Web и лучше всего работает в традиционных приложениях типа клиент/сервер на базе Jet.

ASP поддерживает работу со всеми базами данных, соответствующими стандарту ODBC. С ASP работать очень просто. Для этого надо всего лишь вставить текст сценария ASP в пару тэгов <% %>. В остальном ASP -файл ничем не отличается от HTML -файла (за исключением, пожалуй, расширения). В сценариях ASP c равным успехом используются языки VBScript и JavaScript (реже PerlScript). Файл, содержащий ASP- код:

<%@LANGUAGE="VBScript" CODEPAGE="1251"%>

<html>

<head>

<%

MyString = Date()

%>

</head>

<body>

<%

Response.Write "<h1>" & MyString & "</h1>"

%>

</body></html>

ADO – однозначный выбор для доступа к данным при работе с Microsoft Internet Information Server (IIS). Прежде всего ей требуется источник данных. Источники данных могут быть различными; одним из них является ODBC (Open Database Connectivity – открытый протокол доступа к базам данных). Более высокой производительности позволяет добиться OLE DB (база данных OLE), основанная на модели объектов СОМ.

Для определённости положим, что наша БД или СУБД имеет свой драйвер ODBC, посредством которого можно организовать System DSN (Data Source Name) – системный источник данных для сетевого доступа (обычно размещаемый на том же компьютере, где и web -сервер). Для MS SQL Server это подключение выполнено автоматически.

ASP -сценарий, работающий с базой данных, в первую очередь должен подключиться к ней (создать экземпляр объекта типа Connection). Вот как выглядит вариант подключения к MS SQL Server через ODBC:

Set CONN = CreateObject("ADODB.Connection")

CONN.Open "DSN=DSSP-SQL; UID=creator; PWD=creator; database=BOARD"

Set RS = CreateObject("ADODB.Recordset")

После этого можно будет выполнять инструкции SQL и создавать наборы записей.

Корректное завершение работы с базой:

db.Close

Set db = Nothing

Для работы с сервером могут быть использованы два различных объекта — Command и Recordset. Практически вся необходимая обработка данных выполняется с помощью объекта Recordset, поскольку его набор свойств и методов обеспечивает возможность универсальной обработки столбцов таблиц базы данных и помещенных в них значений.

Объект Command является основополагающим в ходе выполнения любого сеанса ADO соединения с БД. Он используется для создания экземпляра объекта Recordset, по сути являющегося областью хранения промежуточных значений и предоставляющим возможность быстрого обращения к элементам (например, определенной выборки) базы данных. Это позволяет сэкономить временные и аппаратные ресурсы сервера, поскольку в данном случае транзакции с сервером выполняются лишь с целью извлечения каждого конкретного набора отдельных значений (выборки), а вся дальнейшая обработка сводится к операциям над уже извлеченным набором. Его метод Execute применяется для выполнения любых команд языка SQL, независимо от того, будут в результате выполнения команды возвращаться какие-либо данные (результаты запросов) или нет. Этот метод может использоваться и для выполнения на сервере команд администрирования или поддержки базы данных (вызов хранимых процедур — наиболее типичный случай).

CONN.Execute(" delete from _Disciplines where id_discipline=9 ")

Наиважнейшим компонентом ADO является объект набора данных recordset. Набор данных — это копия определенного фрагмента базы данных в памяти компьютера, сохраняющая структуру последней. Набор данных представляет так называемое пассивное (не подключенное) к базе данных состояние, то есть фрагмент базы данных присутствует в памяти компьютера, хотя соединение с реальной базой данных уже закрыто. Этот объект предоставляет разработчику широкий набор функциональных возможностей.

Коллекция Fields — важнейший элемент объекта Recordset. Она содержит информацию, необходимую для работы с выбранными из таблиц данными. Свойства, связанные с каждым из полей в коллекции, содержат его исчерпывающее описание — от установленного в таблице типа и размера этого поля до имени для реальной длины его значения. Свойство Value содержит значение, выбранное из поля таблицы. Для определения текущего типа представления данных предназначено свойство Type.

Пример 1:

sql ="SELECT GetDate() as Date"

Set RS = CreateObject("ADODB.Recordset")

RS.Open sql, CONN

out=RS.Fields.Item ("Date")

RS.Close

Response.Write out

Пример 2:

Dim MyData

MyData=Array()

sql ="SELECT * from _Disciplines"

RS.Open sql, CONN

i=0

do while (not RS.EOF)

redim preserve MyData(i)

MyData (i)= RS (" name ")

RS. MoveNext

i = i +1

loop

Пара методов, AddNew и Update, позволяет добавлять новую запись к объекту Recordset и заносить значение ее полей перед добавлением в базу данных. После вызова метода AddNew полям новой записи присваиваются требуемые значения и вызывается метод Update, сохраняющий эти данные в таблице. Если не вызывать метод AddNew, вместо добавления новой записи будет выполнено обновление полей текущей записи объекта Recordset.

RS.AddNew

RS.Fields (“id”) = 1234

RS.Update

M етод Close объекта Recordset закрывает этот объект и освобождает все связанные с ним ресурсы. По окончании работы с объектом Recordset его нужно обязательно закрыть, поскольку при этом освобождаются ресурсы и на стороне сервера.

Rset.Close

Set Rset = Nothing

Метод MoveFirst — используется для перемещения к первой записи в наборе данных Recordset. При вызове этого метода свойству BOF автоматически присваивается значение TRUE. Метод MoveLast — используется для перемещения к следующей записи в наборе данных Recordset. При вызове этого метода свойству EOF автоматически присваивается значение TRUE. В свойство RecordCount помещается общее число записей набора данных объекта Recordset. Следует заметить, что, пока для перемещения в пределах буфера данных объекта Recordset не будет использован метод MoveLast или MoveNext, значение этого свойства будет соответствовать максимальному количеству просмотренных строк.

Если один и тот же код постоянно повторяется в различных сценариях, можно переместить его в отдельный файл (расширение “. js ”), а в сценариях указывать ссылку на этот файл. Возможности ASP -сценария просмотром таблиц далеко не исчерпываются. Обычно посредством web -страниц предоставляется возможность редактировать (добавлять, изменять, удалять) записи в базе данных, сохраняя при этом конфиденциальность работы с информацией, а также осуществлять поиск. Однако структура сценария в этом случае существенно усложняется.

Начиная с версии ADO 2.0 используется концепция отсоединённого состояния. Эта концепция позволяет выполнять определенные операции над копиями наборов данных в памяти компьютера, при нахождении его в неподключенном к БД состоянии. Выгода от этого двойная: во-первых, экономится дорогой клиент-серверный канал передачи информации (промежуточные результаты не передаются, операции над наборами данных выполняются локально, а следовательно, быстрее), а во-вторых, сервер освобождается от выполнения вычислительных операций. В A SP. NET эта концепция значительно развита за счет введения нового класса DataSet (далеким потомком объекта RecordSet). Обект DataSet, в частности, позволяет динамически «держать» в памяти копии целой базы данных и выполнять все вычислительные операции именно над этим представлением базы данных, обновляя реальную базу данных лишь время от времени.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-08; просмотров: 525; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.0.61 (0.01 с.)