|
Программирование >> Руководство по созданию web приложений
Программная модель OLE DB Так же как и в случае только что объектной модели ADO, базо- выми элементами модели 0]М DB является набор объектов. Эти объекты применяются для - с базами данных и сеансов, выполнения команд с параметрами, получения результата I : .: этих ко- манд в виде переменных или наборов записей, обработки событий и ошибок. Рассмотрим порядок приложения к базе данных с применением программной модели OLE DB. Инициализация среды выполнения Работа OLE DB основана на модели компонентных объектов СОМ, поэтому сразу после начала своей работы приложение должно выполнить инициализацию системы СОМ. Как обычные приложения выполняют эту инициализацию вызовом функции : В результате становится возможным загрузка объектов провайдера OLE DB и работа с этими объектами. Инициализация источника данных Прежде чем обращаться к приложение OLE DB должно соединение с источником данных. Это действие требуется и при использовании метода доступа ADO, однако установка соединения с применением объектов OLE DB выполняется по-другому. Во-первых, для установки соединения приложение должно создать массив структур свойств, содержащих для выполнения аутентификации. Как минимум требуется указать имя данных, имя пользователя и пароль. Во-вторых, приложение должно вызвать метод SetPr operties интерфейса ID! выполняющий указанных выше свойств. Интер- фейс : . 5 становится доступным после инициализации OLE DB. И наконец, в-третьих, приложению необходимо вызвать метод ин- терфейса IDBInitialize, что обязательно для инициализации источникаданных. После завершения работы с соединением его надо закрыть, вызвав метод интерфейса IDBInitialize. Открытие сеанса Сеанс играет соединению с : . данных в ADO. В рамках сеанса приложение может выполняя те или иные операции с Для открытия сеанса приложение использует метод интерфей- са IDBCreateSession. В рамках одной главы невозможно рассказать об объектах OLE DB хоть сколько-нибудь поэтому мы изложим только основы. Вы сможете применить полученные знания па практике, создавая, :: расширения сервера Web, обращающиеся к базам данных через OLE DB, в виде приложений CGI или ISAPE Глава 5- с базами данных через OLE DB 233 Подготовка команды и параметров При создании сеанса методом CreateSession - Session про- грамма получает интерфейс II , . позволяющий созда- вать команды. Устанавливая методом SetProperties интерфейса ЮоиапоРгорегties различные атрибуты программа влияет на ее исполнение. Далее необходимо задать текст команды. Эта операция выполняется методом SilCodiian: - интерфейса ICommandText. Текст команды представляет собой строку языка имя хранимой SQL Server или имя таб- лицы. При необходимости средствами метода Prepare интерфейса ICoiiaadPrapara программа может выполнить . подготовку команды. Эта опера- имеет смысл, если команда представляет собой строку языка Transact-SQL (а не хранимую процедуру) и будет выполняться многократно. Если команда имеет параметры команда запуска хранимой про- цедуры с параметрами), необходимо описать параметры команды, создав группу доступа, называемых Accessor. Выполнение команды Для команды программа должна вызвать метод Execute интерфей- са ICommandText. После этого необходимо объект, использованный для выдачи В результате выполнения команды может быть набор записей, состо- ящий из строк. По своему назначению этот набор записей аналогичен набору класса Recordset, создаваемый в приложениях ADO. Обработка результатов выполнения команды Результаты выполнения команды OLE DB наборами строк, отфор- матированными в виде таблицы. Для извлечения из набора Вы дааааана! использовать ряд интерфейсов. Прежде всего. Вам потребуется С помощью про- грамма получит информацию о столбцах данных. Интерфейс IBowset,l.nfo обеспечивает программу информацией о самом наборе записей. С помощью программа выполнит привязку данных полученной таб-к переменным, ; программе. И наконец, интерфейс IRowset нужен для получения данных из строк набора записей. Обычно при извлечении данных из набора записей приложение вначале вызывает метод CreateAccessor интерфейса lAccessor, выполняя привязку данных к переменным. Далее все записи извлекаются i в цикле с помо- щью метода 6etNextReas интерфейса А затем программа вызывает метод GetData интерфейса IRowset для получения данных из строк набора и записи этих данных в указанные в процессе привязки. Обработка ошибок Обработка возникающих при применении методов OLE DB, намного сложнее, чем обработка ошибок, связанных с использованием ADO. Объекты OLE DB Для работы с OLE DB Ваше должно создать ряд объектов OLE DB, а затем обращаться к методам и свойствам этих Ниже мы рассмотрим некоторые методы и свойства важнейших OLE DB, необходимые для создания автономных . С++, выполня- ющих запросы к tlrotfiM данных. Объект SQLOLEDB Для установки соединения с источником Ваша программа должна со- здать объект SQLOLEDB, предоставляющий источника данных, а за- тем выполнить его Создание объекта Для создания этого объекта необходимо воспользоваться функцией r:ot:r9ate-вызвав ее следующим образом: , . : = II.JLL: hr = .а1чГ1п..Гч1К,Ъ;1Г 11.та..Ь, IIITLL, - Ошибки могут создании многочисленных объектов OLE поэтому Ваше приложение должно код завершения функций. Если метод какого-либо интерфейса . - с . и соответствующее ... его При этом Вам потребуются интерфейсы . . .и В таблице 5-1 кратко перечисленные интер- фейсы. Таблица - . связанные с обработкой ошибок Итерфеис ISupportErrorlnfo Этотинтерфейс определить,какие объекты, ситуации, можно получить от вызвавшего ошибки. В частности, он получить таких объектов, создаваемых для получения ин- формации об ошибках OLE DB lErorlnfo Данный.............:.................позволяет получить об ошибке, имя ошибку, глобальный уни - кальный идентификатор объекта GUID, создавшего ошибку, атак-же имя файла системы и раздела системы, ошибку 1 Error Lookup Этот интерфейс обеспечивается провайдером OLE DB. Использу- ется ингерфейсами . и lErorlnfo IErrorPec;orc£. ДЛЯ доступа к . .- . . ошибки OLE DB ISQLErrorlnfo Данный интерфейс нужен для значения и естественного об ошибке. Обеспечивается ми ODBC
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |