|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Обращение к базе данных с использованием технологии ADO — до 20 мин
Технология 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
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.) |