|
Программирование >> Sql: полное руководство
Таблица 19JO. Фlaииf<crжau>т% сфрабопст результатов запроса Функция Описание OCiStmtFetchO Извлекает строку или строки из таблицы результатов за- проса OCiDef ineByPos () Выполняет привязку столбца таблицы результатов запроса OCIDef ineArrayofStruct О Задает массив для получения групп строк из таблицы результатов запроса \ OCIDef ineDynamic О Регистрирует функцию обратного вызова, которая будет выполнять динамическую привязку столбца таблицы ре зультатов запроса OCIDef meObject О Предоставляет дополнительную информацию о привязке столбца, имеющего сложный объектный тип данных Управление описателями В OCI описатели используются для хранения информации о параметрах, объектах базы данных Oracle (таблицах, представлениях, хранимых процедурах и т п ), больших двоичных объектах, идентификаторах записей и других объектах OCI Описатели служат не только для передачи приложению информации, но также позволяют управлять обработкой перечисленных объектов В табл 1911 описаны функции работы с описателями Они создают и освобождают описатели, а также считывают и устанавливают значен1шт)тдельных их атрибутов
Управление транзакциями Для управления транзакциями приложения Oracle пользуются функциями, описанными в табл 19 12 Функции OCITransCommit О и OCITransRollback () служат для завершения и отмены транзакций - они соответствуют инструкциям COMMIT и ROLLBACK Другие функции обеспечивают более гибкую и сложную схему управления транзакциями, включая присвоение транзакциям атрибута только чтение , сериа-лизацию, а также контроль над распределенными транзакциями Функции управления транзакциями получают в качестве параметра дескриптор контекста услуги, идентифицирующий текущее подключение
функция Описание OCITransPrepare () Готовит распределенную транзакцию к завершению OCITransForget () Отменяет ранее подготовленную транзакцию OClTransDetach О Отключает распределенную транзакцию Обработка ошибок Каждая функция OCI возвраихт код состояния, указывающий, успешно ли завершена ее работа Кроме того, большинство функций OCI принимают в качестве входного параметра дескриптор ошибки Если в ходе выполнения функции произошла ошибка, информацию о ней можно получить через указанный дескриптор Для этого после завершения функции приложение вызывает функцию oclErrorGet () и получает подробное описание произошедшего, включая код ошибки и соответствующее текстовое сообщение Получение информации из системного каталога Функция OClDescribeAny () обеспечивает доступ к информации из системного каталога Oracle Приложение передает этой функции имя таблицы, представления, хранимой процедуры, типа данных или другого объекта, входящего в схему базы данных Oracle В ответ функция заполняет описатель (идентифицируемый дескриптором) информацией об атрибутах объекта Эту информацию можно затем получить с помощью функции ociAttrGet () Работа с большими объектами OCI включает большую группу функций (табл 19 13), предназначенных для обработки больших объектов Oracle (имеющих тип LOB), а также больших объектов, хранящихся в файлах, имена которых указываются в столбцах таблиц Oracle Поскольку большие объекты могут занимать тысячи и миллионы байтов памяти, их обычно нельзя непосредственно связывать с профаммными буферами Вместо этого для доступа к таким объектам OCI использует локаторы LOB, которые функционируют как дескрипторы объектов Локаторы возвращаются в таблице результатов запроса, а также задаются в качестве входных парамефов при добавлении и обновлении больших объектов Специальные функции 0С1 поддерживают обработку объектов типа LOB по частям, позволяя перемещать их между базой данных Oracle и приложением Эти функции получают в качестве входных парамефов один или несколько локаторов LOB
функция Описание OCILobGetLength () Возвращает длину большого объекта OCILobLocatorlslnit () Проверяет, является ли переданное значение действующим локатором большого объекта OCiLobCopy () Копирует данные из одного большого объекта в другой OCiLobAssign () Присваивает локатор одного большого объекта другому OClLoblsEqual () Сравнивает два локатора больших объектов OCiLobFileOpen () Открывает файл, содержащий данные большого объекта OClLobFileClose () Закрывает открытый файл большого объекта OClLobFileCloseAll () Закрывает все открытые файлы больших объектов OCILobFilelsOpen () Проверяет, открыт ли файл большого объекта OClLobFileGetName () Возвращает имя файла большого объекта для заданного локатора OCILobFileSetName () Задает ИМЯ файла в локаторе большого объекта OCiLobFileExists () Проверяет, существует ли файл большого объекта OClLobLoadFromFile () Загружает большой объект из файла Резюме Во многих реляционных СУБД для профаммного доступа к базе данных применяется интерфейс профаммирования приложений (API), представляющий собой совокупность функций. Профаммный доступ к базе данных в той или иной СУБД может осуществляться либо исключительно с помощью специализированной библиотеки функций, либо еще и с помощью всф!оенного SQL. В интерфейсах профаммирования приложений обработка запросов, передача парамефов, компиляция и выполнение инсфукций и другие подобные задачи осуществляются с помощью функций, благодаря чему профаммный SQL остается идентичным интерактивному SQL. В случае всфоенного SQL эти задачи вьшолняются специальными инсфукциями (open, fetch, close, describe, prepare, execute и т.д.), которые имеются только в профаммном SQL. Протокол ODBC компании Microsoft является широко распространенным профаммным интерфейсом, позволяющим приложению не зависеть от особенностей конкретной СУБД. Одаако различия между существующими СУБД проявляются в том, что не все функции и возможности ODBC поддерживаются той или иной СУБД. Стандарт SQL/CLI был создан на основе протокола ODBC и совместим с ним на базовом уровне Этот стандарт описьгаает набор функций, дополняющих всфоенныи SQL. Несмофя на то что он был опубликован сравнительно недавно (в 1995 г.), многие поставщики СУБД уже включили его поддержку в свои продукты. Интерфейсы профаммирования приложений в различных СУБД обладают одними и теми же базовыми возможностями, но что касается расширенных возможностей, то Интерфейсы различаются очень существенно - как по функциям, так и по используемым сфуктурам данных.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |