АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Обращение к базе данных с использованием технологии ADO — до 20 мин

Читайте также:
  1. Access. Базы данных. Определение ключей и составление запросов.
  2. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  3. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  4. I. Разработка структуры базы данных.
  5. I.5.3. Подготовка данных для задачи линейного программирования
  6. I.5.7. Mодификация (изменение) данных задачи
  7. II. Затраты на организацию работ на строительных площадках и усовершенствование технологии
  8. II. УКАЗАНИЯ ПО ТЕХНОЛОГИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА
  9. II. УКАЗАНИЯ ПО ТЕХНОЛОГИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА
  10. II. УКАЗАНИЯ ПО ТЕХНОЛОГИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА
  11. II. УКАЗАНИЯ ПО ТЕХНОЛОГИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА
  12. II. УКАЗАНИЯ ПО ТЕХНОЛОГИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА

 

Технология Active Data Objects (ADO) - это программное расширение технологии активных серверных страниц ASP, реализованное в Web-сервере Internet Information Server (IIS) компании Microsoft с целью организации подключений к базам данных. В технологии ADO поддерживаются следующие основные функции:

· независимо создаваемые объекты;

· поддержка хранимых процедур с входными, выходными и возвращаемыми параметрами;

· курсоры различных типов (включая возможность поддержки разных специальных курсоров конечных пользователей);

· пакетное обновление;

· поддержка ограничений для числа возвращаемых строк или других параметров запроса;

· поддержка нескольких наборов данных, возвращаемых хранимыми процедурами или пакетными операторами.

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

Объектная модель ADO определяет набор (коллекцию) программируемых объектов, которые могут применяться с Visual Basic, Visual C++, VBScript. Объектная модель ADO разработана для выполнения большинства особенностей интерфейса OLE DB.

Если при помощи интерфейса ODBC операционная система осуществляет, как правило, доступ к реляционным БД, использующим структурированный язык запросов SQL, то интерфейс OLE DB (Object Linking and Embedding for DataBases) является более универсальной технологией для доступа к любым источникам данных.

В интерфейс OLE DB включен механизм провайдеров, под которыми понимаются поставщики данных, находящиеся в надстройке над физическим форматом данных. Их называют сервис-провайдерами, они помогают объединять в однотипную совокупность объекты, связанные с разнообразными источниками данных.

Интерфейс OLE DB может использовать для доступа к источникам данных интерфейс ODBC. В этом случае применяется провайдер OLE DB для доступа к ODBC-данным. Таким образом, интерфейс OLE DB не заменяет интерфейс ODBC, а позволяет организовать доступ к источникам данных через различные интерфейсы, и в том числе через ODBC.

ADO содержит семь объектов, которые инкапсулируют в себе большинство операций с базой данных - Connection (соединение), Command (команда), Parameter (параметр), Recordset (набор данных), Field (поле), Property (свойство) и Error (ошибка), - а также четыре набора объектов (коллекции) - Fields (поля), Properties (свойства), Parameters (параметры) и Errors (ошибки).

Объект Connection устанавливает коммуникационную связь между приложением и источником данных, позволяет выполнять команды. Класс Connection включает следующие методы:

· Open (Close) - установление (закрытие) физического соединения с источником данных;

· Execute - выполнение команды для этого соединения;

· BeginTrans, CommitTrans, RollbackTrans - управление транзакциями для текущего подключения, включая вложенные транзакции, если источник данных поддерживает работу с ними.

Объект Command. Команда, направляемая в базу данных, как правило, представляет собой SQL-команду или вызов некоторой хранимой процедуры. Объект Command может настраиваться с помощью параметров, задаваемых посредством создания коллекции объектов класса Parameter. Класс Command включает следующие методы:

· Execute - выполнение команды для данного соединения;

· CreateParameter - создание нового объекта класса Parameter.

Коллекция Parameters. Содержит любые параметры, которые используются вместе с данным объектом Command. Класс Parameters содержит следующие методы:

· Append (Delete) - добавление (удаление) параметра для указанной коллекции;

· Item - извлечение определенного объекта Parameter.

На некоторый объект Parameter в коллекции Parameters можно ссылаться, используя его порядковый номер или значение, присвоенное свойству Name этого объекта.

Объект Recordset представляет набор записей, полученный в результате выполнения запроса в базе данных. При создании объекта Recordset указатель текущей записи устанавливается на его первую запись (если таковая имеется), а свойствам BOF и EOF присваивается значение FALSE. Если никаких записей нет, то свойству Recordcount присваивается значение 0, а свойствам BOF и EOF - значение TRUE. Класс Recordset включает следующие методы:

· MoveFirst, MoveLast, MoveNext, MovePrevious и Move - производят перемещение указателя текущей записи в предположении, что провайдер поддерживает выполнение соответствующей функции. В однонаправленных объектах Recordset поддерживается только метод MoveNext. При использовании указанных методов для перемещения по записям результирующего набора для обнаружения его начала и конца могут применяться свойства BOF и EOF объекта Recordset;

· AddNew, Update, Delete - осуществляют добавление новых записей, обновление и удаление имеющихся записей, связанных с открытым объектом;

· Open (Close) - выполняют открытие (закрытие) курсора, представляющего результаты выполнения команды.

Коллекция Fields. Объект Recordset содержит коллекцию Fields, состоящую из объектов класса Field, каждый из которых соответствует столбцу данных объекта Recordset. Как и при работе с объектами Parameter, на отдельный объект Field в коллекции Fields можно ссылаться, используя его порядковый номер или имя.

Рассмотрим возможность соединения с базой данных из языков сценариев. ASP-сценарий, работающий с базой данных, в первую очередь должен подключиться к ней. После этого можно выполнять инструкции SQL и создавать наборы записей. Существует специальный объект Connection, управляющий подключением к базе данных.

Объект Connection позволяет устанавливать сеансы связи с источниками данных; он обеспечивает функционирование механизма для инициализации и установления соединения, выполнения запросов и использования транзакций.

Создание соединения с базой данных включает следующие шаги:

· сначала вызывается метод CreateObject() объекта Server, создающий объектную переменную cn типа Connection. Объект Connection определен в библиотеке ADODB:

 

Dim cn

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

 

· далее можно использовать метод Open объекта Connection для установки соединения c провайдером ODBC. Провайдер определяется посредством установки свойства Provider. Если оно не определено, то по умолчанию будет использован провайдер MSDASQL - это сокращенное название драйвера OLE DB Microsoft для SQL Server:

 

cn.provider "MSDASQL"

 

· затем вызывается метод Open() объекта Connection, открывающий соединение с заданным источником данных.

 

Сослаться на базу данных SQL Server из ASP-сценария возможно двумя способами:

· путем создания источника данных (DSN);

· с помощью строки соединения (без применения DSN).

 

В первом случае созданный заранее источник данных с именем mystud используется для соединения с базой данных следующим образом:

 

cn.open "mystud","user1","123"

 

Здесь для метода Open указывается DSN базы данных, имя пользователя и пароль.

Во втором случае строки соединения содержат всю информацию, необходимую ADO для того, чтобы создать соединение с внешним источником данных. Пример такой строки:

 

"uid=user1;driver={SQL Server};server=its; database=basa_user1"

 

Строка создает соединение с базой данных basa_user1 на MS SQL Server с именем its, используя драйвер для SQL Server и имя пользователя user1. Если нужен пароль, то необходимо добавить подстроку pwd=<пароль>:

 

"uid=user1;pwd=123;driver{SQL Server}; server=its; database=basa_user1"

 

Такая строка подойдет для соединения с базой данных в тексте сценария вместо источника данных:

 

cn.open "uid=user1;driver={SQL Server}; server=its; database=basa_user1"

 

или

 

cn.open "uid=user1; pwd=123; driver={SQL Server}; server=its;database=basa_user1"

 

Опустив некоторые подробности работы с API-интерфейсом, приведем небольшой фрагмент сценария на языке VBScript для серверной стороны, выполняющий выборку и изменение информации в базе данных учебного примера.

 

Dim cn

Dim rst

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

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

cn.open "uid=user1;pwd=123;

driver={SQL Server};

server=its;database=basa_user1"

rst.open "SELECT название, тип, цена

FROM товар", cn

do until rst.eof

response.write rst.fields(0)

response.write rst.fields(1)

response.write rst.fields(2) & "<br>"

rst.movenext

loop

 

Для создания динамического запроса изменения данных на сервере воспользуемся объектом Command с параметрами.

 

Dim cn

Dim rst

Dim cmd

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

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

Set cmd=Server.CreateObject("ADODB.Command")

cn.open "uid=user1;pwd=123;

driver={SQL Server};

server=its;database=basa_user1"

Set cmd.ActiveConnection=cn

Dim prm1, prm2

' создание параметров

prm1=Server.CreateObject("ADODB.Parameter")

prm2=Server.CreateObject("ADODB.Parameter")

' определение динамического запроса

cmd.CommandText="update товар set цена=?

where название=?"

cmd.CommandType=adCmdText

cmd.Prepared=True

' определение параметра, соответствующего

' первому знаку? в SQL-запросе

Set prm1=сmd.CreateParameter("par1",

adInteger, adParamInput,, 160)

' определение параметра, соответствующего

' второму знаку? в SQL-запросе

Set prm2=сmd.CreateParameter("par2", adChar,

adParamInput,20, "Трюфели")

' добавление параметров в коллекцию параметров

cmd.Parameters.Append prm1

cmd.Parameters.Append prm2

' выполнение SQL-запроса

cmd.Execute

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.011 сек.)