Студопедия

Главная страница Случайная страница

Разделы сайта

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






Лекция 14






 

 

Функции ODBC для работы с системными каталогами.

 

Одной из областей, в которых ODBC предлагает возможности, выходящие за рамки стандарта SQL/CLI, является получение информации о структуре базы данных из системного каталога.

Стандарт ODBC не считает обязательным наличие в базе данных информационной схемы.

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

 

Функции ODBC, предназначенные для работы с системными каталогами, обычно не нужны в специализированных приложениях, а вот программам общего назначения, таким как модули формирования запросов, генераторы отчетов и утилиты анализа данных, без подобных функций обойтись. Эти функции можно вызывать в любое время после подключения к источнику данных. Например, генератор отчетов может вызвать функцию SQLConnect() и сразу же вслед за ней - функцию SQLTables(), чтобы узнать, какие таблицы имеются в базе данных.

Все функции, работающие с каталогами, возвращают информацию в виде таблицы результатов запроса. Для получения этой информации приложения применяют же методы, которые используются для получения результатов обычных запросов, выполняемых посредством CLI. Например, набор записей, сформированный функцией SQLTables(), будет содержать по одной записи для каждой таблицы базы данных.

 

Функции ODBC, предназначенные для работы с системным каталогами

 

Функция Описание

 

SQLTables() Возвращает список таблиц заданного каталога (каталогов) и схемы (схем)

SQLTablePrivileges () Возвращает список привилегий заданной таблицы (таблиц)

SQLColumns() Возвращает список имен столбцов заданной таблицы (таблиц)

SQLColumnPrivileges() Возвращает список привилегий на указанные столбцы заданной таблицы

SQLPrimaryKeys() Возвращает список имен столбцов, составляющих первичный ключ заданной таблицы

SQLForeignKeys() Возвращает список внешних ключей заданной таблицы и список внешних ключей других таблиц, которые связаны с заданной таблицей

SQLSpecialColumns() Возвращает список столбцов, которые однозначно идентифицируют строку таблицы, или столбцов, которые автоматически обновляются при обновлении строки

SQLStatistics() Возвращает статистические данные о таблице и ее индексах

SQLProcedures() Возвращает список хранимых процедур заданного источника данных

SQLProcedureColumns() Возвращает список входных и выходных параметров и имена возвращаемых столбцов для заданной хранимой процедуры (процедур)

 

Расширенные возможности ODBC

 

Как уже упоминалось, ODBC предоставляет дополнительные возможности помимо тех, что определены стандартом SQL/CLI. Многие из них предназначены, для повышения производительности приложений, использующих ODBC, за счет минимизации количества вызовов функций ODBC, необходимых для выполнения типичных задач, а также за счет сокращения сетевого трафика при работе с ODBC. Кроме того, ODBC предоставляет ряд возможностей, обеспечивающих большую независимость приложения от конкретной СУБД и помогающих приложению устанавливать соединение с источником данных. Часть дополнительных возможностей ODBC реализована в виде функций, показанных ниже. Остальные управляются атрибутами инструкций и сеансов. Многие из расширенных возможностей ODBC появились в версии 3.0 этого протокола и еще не все драйвера их поддерживают.

 

Некоторые дополнительные функции ODBC

 

Функция Описание

 

SQLBrowseConnect() Возвращает информацию об атрибутах указанного источника данных ODBC, которые необходимо задать для подключения к источнику

SQLDrivers() Возвращает список доступных драйверов и имен их атрибутов

SQLDriverConnect() Расширенная форма функции SQLConnect(), предназначенная для передачи ODBC дополнительной информации о сеансе подключения

SQLNumParams() Возвращает количество параметров последней подготовленной инструкции SQL

SQLBindParameter() Дополняет возможности функции SQLBindParam() SQLDescribeParam() Возвращает информацию о параметре инструкции SQL

SQLBulkOperations() Выполняет пакетные операции с использованием механизма закладок

SQLMoreResults() Определяет, остались ли еще необработанные записи в таблице результатов запроса

SQLSetPos() Задает позицию указателя в результирующем наборе записей, разрешая приложению выполнять позиционные операции над этим набором

SQLNativeSQL() Возвращает перевод заданной инструкции SQL на “родной” диалект SQL той СУБД, с которой ведется работа

 

 

Функция Параметры Действие
SQLCONNECT([DataSourceName, cUserID, cPassword | cConnectionName])   DataSourceName – имя источника данных, cUserID – имя пользователя, cPassword | cConnectionName]) – пароль или имя соединения Устанавливает соединение с указанным источником данных ODBC. Возвращает положительное целое число в случае успеха, -1 – при неудаче.
SQLSETPROP(nConnectionHandle, cSetting [, eExpression])   nConnectionHandle – указатель на соединение с источником данных полученный от Sqlconnect(), cSetting – имя параметра, eExpression – значение параметра; Возможные значения для cSetting Asynchronous BatchMode ConnectBusy ConnectString ConnectTimeOut DataSource DispLogin DispWarnings IdleTimeout ODBChdbc ODBChstmt PacketSize Password QueryTimeOut Transactions WaitTime   Для заданного соединения с источником данных устанавливает значения различных параметров.
SQLEXEC(nConnectionHandle, [cSQLCommand, [CursorName]]) nConnectionHandle – указатель на соединение с источником данных полученный от Sqlconnect(), cSQLCommand – оператор SQL передаваемый источнику данных, CursorName – имя курсора куда будет помещен результат, по умолчанию- SQLRESULT.  
SQLPREPARE(nConnectionHandle, cSQLCommand, [CursorName])   SQLEXECUTE(nConnectionHandle, cSQLCommand, [CursorName])   Подготавливает оператор SQL к выполнению функцией SQLEXEC()
SQLGETPROP(nConnectionHandle, cSetting)     Возвращает текущие значения или значения по умолчанию для активного соединения.
SQLSTRINGCONNECT([cConnectString])     Устанавливает соединение с источником данных через строку соединения
SQLCOMMIT(nConnectionHandle)     Завершает транзакцию
SQLROLLBACK(nConnectionHandle)   Отменяет любые изменения сделанные в текущей транзакции
SQLMORERESULTS(nConnectionHandle)     Копирует следующий набор данных в курсор VFP (если такой набор данных существует)
SQLDISCONNECT(nConnectionHandle)      
SQLCANCEL(nConnectionHandle)     Прерывает выполнение текущего SQL оператора.
SQLTABLES(nConnectionHandle [, cTableTypes] [, cCursorName])   Сохраняет имена таблиц в источнике данных в курсор VFP
SQLCOLUMNS(nConnectionHandle, TableName [, “FOXPRO” | “NATIVE”] [, CursorName])     Сохраняет список имен столбцов и информацию о каждом столбце таблицы в источнике данных в курсор VFP
     

 

Управление сеансами

 

Две из расширенных возможностей ODBC связаны с организацией сеансов. Механизм просмотра информации о подключении предназначен для упрощения процесса подключения к источнику данных. В основе этого механизма лежит функция SQLBrowseConnect(). Сначала приложение вызывает эту функцию, указывая имя источника данных, и в ответ получает описание необходимых для подключения атрибутов (таких как имя пользователя и пароль). Программа собирает нужную информацию (например, запросив ее у пользователя) и передает ее функции SqlBrowseConnect(), которая возвращает описание последующих атрибутов. Цикл одолжается до тех пор, пока приложение не предоставит ODBC всю информацию, обходимую для подключения к заданному источнику данных. Как только это будет сделано, соединение будет установлено.

Механизм группировки подключений предназначен для более эффективного управления процессами установления/разрыва соединения в среде клиент/сервер. Когда режим группировки подключений активизирован, ODBC, получив вызов функции SQLDisconnect(), не завершает сеанс подключения. Он остается в неактивном состоянии в течение некоторого времени, и если за это время поступит новый вызов функции SQLConnect(), ODBC просто активизирует имеющееся подключение (если, конечно, приложению нужен тот же источник данных). Повторное использование подключений позволяет существенно снизить расходы, связанные с многократным входом в серверную систему (и последующим выходом из нее) в приложениях, выполняющих большое число коротких транзакций.

 

 


 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.