Home Content Search

ADO-компоненты

Back Up Next

 

Введение в ASP
Объекты ASP
ADO-компоненты
ASP-компоненты

ActiveX™ Data Objects (ADO) - это набор серверных объектов, позволяющих подключаться к базам данных через ODBC (Open Data Base Connector) и обрабатывать SQL-запросы.

Рассмотрим такой пример. У нас на сервере лежит база данных наших клиентов. Не важно, в каком формате (DBase, Access, SQL и т.п.) она реализована, главное, чтобы администратор сервера завёл соответствующую ODBC-запись и определил, какую команду нужно использовать для ODBC-соединения (т.н. Connection String). Обычно в команде указывается имя, заданное в настройках ODBC (Data Source Name, или DSN), а также идентификатор пользователя (User ID, или UID) и пароль для доступа к базе данных (Password, или PWD).

Итак, допустим, Connection String выглядит так: "DSN=glasdausers; UID=sqlviewer; PWD=sqlpassword". Эта строка указывает на некоторую базу данных, физическое расположение которой уже не имеет значения. В базе данных есть таблица Users (содержащая список наших клиентов), в которой много разных полей. Нас интересует поле Name (в нем хранятся имена клиентов). Вставим в ASP-текст следующий фрагмент:

<%
Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.ConnectionString = "DSN=glasdausers; UID=sqlviewer; PWD=sqlpassword"
oConn.Open

Set rs = Server.CreateObject ("ADODB.Recordset")
rs.ActiveConnection = oConn
rs.Source = "SELECT * FROM Users ORDER BY Name"
rs.Open

Response.Write ("<ol>")

Do While Not rs.EOF
  Response.Write ("<li>" & rs("Name") & "</li>")
  rs.MoveNext
Loop

Response.Write ("</ol>")

rs.Close
oConn.Close
%>

Вот что получится в результате:

  1. Akzo Nobel
  2. Alopecia-Areata
  3. Atomsafe
  4. AZ-Graphics
  5. Bert
  6. Bstpress
  7. Can Bregat
  8. Chekhov
  9. Computery
  10. DZH
  11. Encounter
  12. ERA
  13. Geogracom
  14. Hobgoblin
  15. InterDa
  16. Internat 18
  17. Karttorg
  18. Kolesnikov
  19. Krone
  20. Lans
  21. Malyugin
  22. Mebelpro
  23. Mephi95
  24. Montessori
  25. Oknadom
  26. Okradom
  27. Personal-Mode
  28. Pump-Harmony
  29. Ranova
  30. Remy
  31. Rugs
  32. Rusaero
  33. Sebrant
  34. Sinitsa
  35. SNK
  36. WaterColor
  37. Zeus-Billiard

Разберем наш пример поподробнее.

В первой строке мы определяем с объект oConn типа ADODB.Connection, или просто Connection, с помощью оператора Server.CreateObject. (Стоит отметить, что все ADO-компоненты имеют идентификатор вида ADODB.Object.) Это самый важный ADO-компонент, отвечающий за связь между ASP-приложением и базой данных. У него очень много методов и свойств, и одно из них, ConnectionString, используется во второй строчке примера. Оно определяет собственно строку инициализации ODBC-соединения. После создания Connection-объекта и определения строки инициализации в третьей строке примера с помощью метода Open открывается доступ к базе данных.

Теперь выберем все записи из таблицы Users и упорядочим их по полю Name. Для этого нужно над открытой базой данных выполнить SQL-запрос "SELECT * FROM Users ORDER BY Name". Для хранения результата запроса создадим объект rs типа Recordset, привязываем его к Connection-объекту oConn, используя свойство ActiveConnection, задаем строку запроса в свойстве Source, после чего исполняем запрос с  помощью метода Open.

Теперь в объекте rs содержится набор записей - результат запроса. Кроме того, для сканирования этих строк объект содержит указатель, первоначально установленный на самую первую запись. Теперь, используя метод MoveNext, можно последовательно перемещаться по всем записям, пока не дойдем до самой последней записи. С помощью свойства EOF определяется самая последняя  запись объекта.

Каждая запись является объектом типа "ключ"-"значение" (Dictionary, или Hash-таблица). Причем ключом является наименование поля таблицы, а значением - значение этого поля. Чтобы определить значение поля "Name", достаточно просто вызвать команду rs("Name").

Ну и, наконец, оформим результат в виде нумерованного списка, вставив в выводимый результат теги <ol> и <li> с помощью оператора Response.Write.

По окончании работы хорошим тоном считается закрыть все объекты с помощью метода Close.

Мы не ставим целью описание всех ADO-компонент и ограничимся, исходя из данного примера, лишь следующими:

bulletConnection - отвечает за связь с базой данных
bulletRecordset - содержит таблицу - результат запроса к базе

Для более полной информации рекомендуем почитать другие учебники

 

Back Up Next

FrontPage'98
Последнее обновление - 07 июня 2004
Internet Explorer 4.01