Обзор

Драйвер Microsoft ODBC для Oracle позволяет подключать приложения, совместимые с интерфейсом ODBC, к базе данных Oracle. В данной версии увеличена производительность и возможности управления, в том числе пакеты PL/SQL, интеграция с XA/DTC и доступ к базам данных Oracle с сервера IIS (Internet Information Server). Драйвер ODBC для Oracle соответствует стандартам интерфейса ODBC (Open Database Connectivity — Открытый интерфейс для подключения к базам данных), описанным в руководстве ODBC Programmer's Reference (Справочник программиста ODBC) для соответствующей операционной системы.

В этом файле помощи описана установка, настройка и использование драйвера Oracle ODBC, в файле содержатся следующие разделы.

•	Требования к системе

•	Добавление и изменение источников данных с помощью программы установки

•	Настройка драйвера Oracle ODBC

•	Связь с источником данных

•	Атрибуты строки подключения

•	Уровни соответствия интерфейса ODBC

•	Уровни соответствия языка SQL

•	Отображение типов данных

•	Использование сервера Microsoft Transaction Server

•	Использование сервера Microsoft Internet Information Server

•	Использование службы проверки подлинности операционной системы

•	Ограничения использования курсоров, управляемых клавишами

•	Возвращение параметров массивов из хранимых процедур

•	Замечания по функциям API

•	Замечания по безопасности процесса в функциях API

•	Функции API основного уровня

•	Функции API уровня 1

•	Функции API уровня 2

•	Таблица параметров связи

•	Таблица параметров инструкций

•	Таблица типов курсоров и комбинаций одновременности

•	Сообщения об ошибках


Требования к системе

Для использования драйвера Microsoft ODBC для Oracle необходимо установить операционную систему Microsoft Windows 95/98 или Microsoft Windows NT и клиентское программное обеспечение Oracle версии 7.3 или более поздней. Драйвер Microsoft ODBC для Oracle поддерживает только SQL*Net 2.3 или более поздних версий. Подробнее о продуктах Oracle см. документацию системы Oracle.


Добавление и изменение источников данных с помощью программы установки

Источник данных указывает путь к данным и может включать сетевую библиотеку, сервер, базу данных и другие атрибуты; в данном случае источник данных — это путь к базе данных Oracle. Для связи с источником данных диспетчер драйверов ищет соответствующие сведения в реестре Windows.

Запись реестра, созданная в администраторе источников данных ODBC, используется диспетчером драйверов ODBC и драйверами ODBC. В этой записи содержатся сведения о каждом источнике данных и связанном с ним драйвере. Прежде, чем можно будет установить связь с источником данных, к реестру следует добавить сведения о связи.

Для добавления и настройки источников данных администратора ODBC с панели управления 32-разрядной ODBC операционной системы Windows. Администратор ODBC обновит данные связи с источниками данных. При добавлении источников данных администратор ODBC обновляет данные реестра.

Добавление источника данных в операционной системе Windows

1	Для запуска администратора ODBC дважды щелкните значок Источники данных ODBC на панели управления Windows.

2	Когда появится диалоговое окно Администратор источников данных ODBC, нажмите кнопку Добавить. Появится диалоговое окно Создание нового источника данных.

3	Выберите Драйвер ODBC, затем нажмите кнопку Готово. Появится диалоговое окно Microsoft ODBC для установки Oracle.

4	В поле Имя источника данных введите имя источника данных, который предполагается использовать. Можно использовать любое имя.

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

6	В поле Имя пользователя введите имя пользователя базы данных. Это имя будет вашим идентификатором пользователя базы данных.

7	В поле Сервер введите строку подключения для сервера Oracle. В строке подключения указывается сервер Oracle, к которой надо получить доступ.

8	Нажмите кнопку OK для добавления источника данных.

Замечание.   Появляется диалоговое окно Источники данных и администратор ODBC обновляет сведения реестра. Введенные имя пользователя и строка подключения становятся значениями по умолчанию для этого источника данных. Это означает, что при установке связи с этим источником данных с помощью диалогового окна или строки подключения эти значения будут приняты по умолчанию для связи с источником данных.

9	Подробнее настроить параметры Oracle ODBC можно, нажав кнопку Параметры.

Трансляция

Нажмите кнопку Выбрать для выбора транслятора загруженных данных. По умолчанию принято значение Транслятор отсутствует.

Быстродействие

Параметр Включить REMARKS в функции каталога указывает, будет ли драйвер возвращать столбцы Remarks в результирующем наборе SQLColumns. Драйвер ODBC обеспечивает более быстрый доступ, если этот параметр выключен.

Параметр Включить SYNONYMS в столбцы SQL указывает, будет ли драйвер возвращать сведения о столбцах.

Настройка

Параметр Использовать стандарт дня недели (DayOfWeek) ODBC указывает, будет ли результирующий набор соответствовать формату ODBC для дней недели (Воскресенье = 1; Суббота = 7).

10	Нажмите кнопку Добавить для добавления источника данных, или кнопку Закрыть для выхода.

Изменение источника данных в операционной системе Windows

1	Запустите администратора ODBC. Появится диалоговое окно Источники данных.

2	В диалоговом окне Источники данных выберите источник данных Oracle, который надо изменить, затем нажмите кнопку Установить. Появится диалоговое окно Microsoft ODBC для установки Oracle.

3	Измените нужные поля для источника данных и нажмите кнопку OK.

Когда изменение данных диалогового окна будет закончено, администратор ODBC обновит данные реестра.


Настройка драйвера Oracle ODBC

Быстродействием драйвера Oracle можно управлять с учетом среды данных, если правильно настроить параметры связи источника данных в диалоговом окне Администратор источников данных ODBC или с помощью параметров строки подключения. В диалоговом окне содержатся следующие элементы управления связью с источником данных с помощью диалогового окна или строки подключения.

•	Вкладка Пользовательский DSN.   Список имен источников данных, являющихся локальными для данного компьютера.

•	Вкладка Системный DSN.   Диалоговое окно, позволяющее добавлять или удалять источники системных данных. Источники системных данных доступны всем пользователям локального компьютера.

•	Вкладка Файловый DSN.   Диалоговое окно, позволяющее добавлять или удалять источники файловых данных. Источники файловых данных могут быть использованы совместно всеми пользователями, у которых установлен один и тот же драйвер.

•	Вкладка Драйверы.   Список установленных драйверов ODBC.

•	Вкладка Трассировка.   Диалоговое окно, в котором указывается, как диспетчер драйверов ODBC трассирует вызовы функций ODBC. Трассировку можно настроить отдельно для каждого приложения ODBC.

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

•	Вкладка О программе.   Диалоговое окно, в котором перечислены все файлы компонентов ODBC.

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

Количество дескрипторов инструкций по умолчанию устанавливается сервером равным 50.


Связь с источником данных

Приложение интерфейса ODBC может передавать данные связи несколькими способами. Например, приложение может каждый раз запрашивать пользователя о вводе сведений связи. Или же оно может ожидать строку подключения, определяющую связь с источником данных. То, как происходит подключение к источнику данных, зависит от способа связи, используемого приложением интерфейса ODBC.

Один из способов связи с источником данных — через диалоговое окно Источник данных. Если приложение интерфейса ODBC настроено на использование диалогового окна, это окно будет выведено, и в нем надо будет ввести соответствующие сведения для связи с источником данных.

Также с источником данных можно связаться с помощью строки подключения.

Связь с источником данных с помощью диалогового окна

1	В диалоговом окне Источник данных выберите источник данных Oracle и нажмите кнопку OK. Появится диалоговое окно Подключение.

2	Введите подходящие сведения в диалоговом окне Подключение, затем нажмите кнопку OK.

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


Атрибуты строки подключения

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

"DSN=имя-источника-данных[;SERVER=значение] [;PWD=значение]
[;UID=значение] [;<Attribute>=<значение>]"

Замечание   Драйвер Microsoft ODBC для Oracle поддерживает несколько иной формат строки подключения версии 1.

Если не указываются атрибуты UID, PWD, SERVER (или CONNECTSTRING) и DRIVER, необходимо указать имя источника данных. Однако все остальные атрибуты являются необязательными. Если атрибут не указан, его значение устанавливается равным значению по умолчанию, указанному на вкладке DSN диалогового окна Администратор источников данных ODBC. Регистр букв в значениях атрибутов учитывается.

Атрибуты строк подключения следующие.

Атрибут	Описание	Значение по умолчанию
DSN	Имя источника данных. Это имя представлено на вкладке Драйверы диалогового окна Администратор источников данных ODBC.	""
PWD	Пароль для сервера Oracle, к которому надо получить доступ.	''"
SERVER	Строка подключения для сервера Oracle, к которому надо получить доступ.	""
UID	Имя пользователя сервера Oracle Server. В зависимости от используемой системы этот атрибут может не быть необязательным, то есть для некоторых баз данных он может быть необходим по соображениям безопасности. Используйте значение "/" для использования проверки подлинности операционной системы Oracle.	""
BUFFERSIZE	Оптимальный размер буфера, используемого при выборке столбцов. Драйвер оптимизирует выборку так, что одна выборка из сервера Oracle возвращает столько строк, сколько нужно для заполнения буфера. Увеличение этого значения приводит к повышению производительности при выборке большого количества данных.	65535
SYNONYMCOLUMNS	Если значение истинно (1), вызов функции API SQLColumn( ) возвращает сведения о столбце. В противном случае вызов функции SQLColumn( ) возвращает только столбцы таблиц и представлений. Драйвер ODBC обеспечивает более быстрый доступ, если это значение не установлено.	1
REMARKS	Если значение истинно (1), драйвер возвращает столбцы Remarks для результирующего набора функции SQLColumns. Драйвер ODBC обеспечивает более быстрый доступ, если это значение не установлено.	0
StdDayOfWeek	Расширяет стандарт интерфейса ODBC для скалярной величины DAYOFWEEK. По умолчанию атрибут выключен, но пользователи, которым нужна локализованная версия, могут изменить свойства данных, возвращаемых системой Oracle.	1
Например, строка подключения, подключающая источник данных Employees (Работники) с помощью сервера mickey.world и пользователя cindy будет выглядеть следующим образом.

"DSN=Employees;UID=cindy;PWD=secret;SERVER=mickey.world"

Строка подключения, подключающая источник данных Payroll (Платежи), используя проверку подлинности операционной системы и сервер moola будет выглядеть следующим образом.

"DSN=Payroll;UID=/;PWD=;SERVER=moola"


Уровни соответствия ODBC

Интерфейс ODBC определяет для драйверов два стандарта соответствия: стандарт соответствия API и стандарт соответствия грамматики языка SQL. Соответствие API относится к функциям, поддерживаемым драйвером. Соответствие SQL относится к грамматике языка SQL, поддерживаемой драйвером. Каждый стандарт соответствия состоит из пяти уровней.

Уровень соответствия API

Драйвер ODBC поддерживает функции основного уровня и функции API уровня 1. Также драйвер поддерживает следующие функции API уровня 2.

•	SQLBrowseConnect( )

•	SQLDataSources( )

•	SQLDescribeParam( )

•	SQLExtendedFetch( )

•	SQLForeignKeys( )

•	SQLMoreResults( )

•	SQLNativeSql( )

•	SQLNumParams( )

•	SQLPrimaryKeys( )

•	SQLProcedureColumns( )

•	SQLProcedures( )

•	SQLSetPos( )

•	SQLSetScrollOptions( )

Поддерживаемые параметры

Драйвер поддерживает следующие параметры функций SQLGetConnectOption( ) и SQLSetConnectOption( ) уровня 1.

•	SQL_ACCESS_MODE (только функция SQLGetConnectOption( ))

•	SQL_AUTOCOMMIT

•	SQL_ODBC_CURSORS

•	SQL_OPT_TRACEFILE

•	SQL_OPT_TRACE

•	SQL_TRANSLATE_DLL

•	SQL_TRANSLATE_OPTION

•	SQL_TXN_ISOLATION

Драйвер поддерживает следующие параметры функций SQLGetStmtOption( ) и SQLSetStmtOption( ) уровня 1.

•	SQL_BIND_TYPE

•	SQL_CONCURRENCY

•	SQL_CURSOR_TYPE

•	SQL_KEYSET_SIZE

•	SQL_MAX_ROW

•	SQL_ROWSET_SIZE


Уровни соответствия SQL

Драйвер ODBC поддерживает минимальную грамматику языка SQL и основную грамматику языка SQL, а также следующие расширения драйвера ODBC для языка SQL.

•	Дата, время и отметка времени.

•	Внешние объединения слева и справа.

•	Числовые функции.

abs	log	round	tan
ceiling	log10	second	truncate
cos	mod	sign
exp	pi	sin
floor	power	sqrt
•	Функции даты.

curdate	dayofweek	monthname	second
curtime	dayofyear	minute	week
dayname	hour	now	year
dayofmonth	month	quarter
•	Строковые функции.

ascii	left	right	ucase
char	length	rtrim
concat	ltrim	soundex
lcase	replace	substring
•	Функции преобразования типов.

convert

•	Системные функции.

ifnull

user


Отображение типов данных

Сервер Oracle поддерживает набор типов данных. Драйвер ODBC отображает эти типы данных на соответствующие типы данных языка ODBC SQL. В следующей таблице перечислены типы данных сервера Oracle 7.3 Server и соответствующие им типы данных языка ODBC SQL.

Тип данных сервера Oracle Server	Тип данных языка ODBC SQL
CHAR	SQL_CHAR
DATE	SQL_TIMESTAMP
FLOAT	SQL_DOUBLE
INTEGER	SQL_DECIMAL
LONG	SQL_LONGVARCHAR
LONG RAW	SQL_LONGVARBINARY
NUMBER	SQL_DECIMAL
RAW	SQL_VARBINARY
VARCHAR2	SQL_VARCHAR
Замечание   Типы данных языка ODBC SQL не поддерживают тип данных MLSLABEL системы Oracle. Скалярные величины возвращаются в формате локальной кодовой страницы.

В системе Oracle 8 максимальный размер столбца типа VARCHAR увеличен с 2000 до 4000 байт. Клиентское программное обеспечение Oracle 7.3.x не предоставляет возможности привязать значение параметра, большее, чем 2000 байт. Таким образом, если вы создаете таблицу со столбцом типа VARCHAR длиннее, чем 2000 байт, у вас не будет возможности выполнять параметрические вставки, обновления, удаления и запросы по отношению к данным, превышающим предел в 2000 байт, устанавливаемый клиентским программным обеспечением. Поскольку и драйвер ODBC для системы Oracle, и служба доступа к базам данных OLE DB для системы Oracle используют параметрические вставки, обновления, удаления и запросы, они будут возвращать сообщение об ошибке ORA-01026. Данные, находящиеся в пределах, установленных клиентским программным обеспечением, будут обрабатываться нормально. Для преодоления этого ограничения в 2000 байт следует обновить клиентское программное обеспечение до версии Oracle 8 (8.0.4.1.1c или более поздней).


Использование сервера Microsoft Transaction Server

Базу данных Oracle можно сделать доступной для работы с транзакционными компонентами сервера MTS (Microsoft Transaction Server — Сервер транзакций (Microsoft)) в операционных системах Microsoft Windows NT и Microsoft Windows 95/98. Для того, чтобы сделать базу данных Oracle доступной для работы с компонентами сервера MTS, поддерживающими транзакции, системный администратор должен создать представление с именем V$XATRANS$. Для создания этого сценария следует запустить сценарий, поставляемый с системой Oracle. Подробнее см. файл помощи сервера транзакций Microsoft Transaction Server или документацию по системе Oracle.


Использование сервера Microsoft Internet Information Server

Если при соединении из сценария сервера IIS (Internet Information Server — Сервер данных Интернета) возникают неполадки (в частности, ошибка ORA-12641), добавьте в файл Sqlnet.ora следующую строку.

SQLNET.AUTHENTICATION_SERVICES = (none)

Это приведет к отключению служб безопасной сети, так что анонимная проверка подлинности сможет работать.


Использование службы проверки подлинности операционной системы

Проверка подлинности в операционной системе Oracle поручается операционной системе, управляющей доступом к учетным записям баз данных. Если используется этот вариант входа, пользователю не приходится вводить пароль.

Для использования этого варианта введите "/" в качестве идентификатора пользователя и при подключении с помощью функций API SQLBrowseConnect, SQLConnect или SQLDriverConnect не указывайте пароля.


Ограничения использования курсоров, управляемых клавишами

У вас должна быть возможность извлечь единственный столбец ROWID для запрошенной таблицы. Курсор, управляемый клавишами, нельзя использовать в объединениях, запросах и выражениях, содержащих инструкции DISTINCT, GROUP BY, UNION, INTERSECT, или MINUS.


Возвращение параметров массивов из хранимых процедур

В системе Oracle 7.3 нет возможности доступа к типу записи PL/SQL, кроме как из программы PL/SQL. Если пакетная процедура или функция содержит формальный аргумент, определенный как запись типа PL/SQL, этот формальный аргумент не может быть задан в качестве параметра. Для возвращения параметров массивов из процедур, содержащих корректные Esc-последовательности, используйте тип PL/SQL TABLE в драйвере Microsoft ODBC для Oracle.

Для запуска процедуры используется следующий синтаксис.

{call  <имя-пакета>.<процедура-или-функция>;
(..., {resultset <максимальное-число-запрошенных-записей>,;

<параметр-1-формального-массива>,;
<параметр-2-формального-массива>,...,;

<параметр-n-формального-массива> }, ... ) }

Замечание

•	Параметр <максимальное-число-запрошенных-записей> должен быть больше или равен количеству записей, присутствующих в результирующем наборе. Иначе система Oracle возвращает ошибку, которая будет передана вам драйвером.

•	В качестве параметров массивов записи PL/SQL использовать нельзя. Каждый параметр массива должен представлять только один столбец таблицы базы данных.

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

Определение пакета

CREATE OR REPLACE PACKAGE SimplePackage AS

TYPE t_id is TABLE of  NUMBER(5)

    INDEX BY BINARY_INTEGER;

TYPE t_Course is TABLE of VARCHAR2(10)

    INDEX BY BINARY_INTEGER;

TYPE t_Dept is TABLE of VARCHAR2(5)

    INDEX BY BINARY_INTEGER;

PROCEDURE proc1

(

o_id 	OUT 	t_id,

ao_course 	OUT 	t_Course,

ao_dept	OUT 	t_Dept

);

TYPE t_pk1Type1 IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;

TYPE t_pk1Type2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

);

END SimplePackage;

CREATE OR REPLACE PACKAGE BODY SimplePackage AS

    PROCEDURE  proc1 ( o_id OUT t_id,

    ao_course OUT t_Course, ao_dept OUT t_Dept   ) AS

    BEGIN

          o_id(1):= 200;

          ao_course(1) :=  'M101';

          ao_dept(1) :=  'EEE' ;

          o_id(2) := 201;

          ao_course(2) :=  'PHY320';

          ao_dept(2) :=  'ECE' ;

     END proc1;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

)

AS

i	NUMBER;

BEGIN

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg2(i) := 'Row Number ' || to_char(i);

END LOOP;

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg3(i) := i;

END LOOP;

END proc2;

END SimplePackage;

Вызов процедуры PROC1

1	Возвращение всех столбцов как единого результирующего набора.

{ call SimplePackage.Proc1( {resultset  3, o_id , ao_course, ao_dept
} ) }

2	Возвращение каждого столбца как самостоятельного результирующего набора.

{call SimplePackage.Proc1( {resultset 3, o_id},  {resultset 3,
ao_course}, {resultset 3, ao_dept} ) }

Здесь возвращаются три результирующих набора, один для каждого столбца.

Вызов процедуры PROC2

1	Возвращение всех столбцов как единого результирующего набора.

{call SimplePackage.Proc2( 5 , {resultset  5, ao_Arg2, ao_Arg3} ) }

2	Возвращение каждого столбца как самостоятельного результирующего набора.

{call SimplePackage.Proc2( 5 , {resultset 5, ao_Arg2}, {resultset 5,
ao_Arg3} ) }

Убедитесь, что ваша программа извлекает все результирующие наборы с помощью функции API SQLMoreResults. Подробнее см. руководство ODBC Programmer's Reference (Справочник программиста ODBC).

Замечание   Используя драйвер ODBC для Oracle версии 2.0, функции системы Oracle, возвращающие массивы PL/SQL, для возвращения результирующих наборов использовать нельзя.


Замечания по функциям API

Драйвер Microsoft ODBC для Oracle поддерживает функции API основного уровня, уровня 1 и уровня 2. Эти уровни перечислены в уровнях соответствия ODBC.

•	Интерфейс основного уровня CLI предоставляет функции, определенные в спецификации ISO для интерфейса CLI и обязательные функции, определенные в спецификации X/Open CLI.

•	Интерфейс уровня 1 предоставляет возможности основного уровня, а также дополнительные возможности, например, транзакции.

•	Интерфейс уровня 2 предоставляет возможности уровня 1, а также дополнительные возможности, например, закладки, динамические параметры и асинхронное выполнение функций ODBC.


Замечания по безопасности процесса в функциях API

Драйвер Microsoft ODBC для Oracle обеспечивает безопасность процессов; однако система Oracle не позволяет выполняться нескольким инструкциям одновременно в одном сеансе связи. Драйвер усиливает это ограничение. Другими словами, в многозадачных приложениях, несмотря на то, что каждый процесс может в любой момент обращаться к драйверу Oracle ODBC, драйвер блокирует обращения всех процессов одной связи до тех пор, пока первый процесс не освободит драйвер.

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


Функции API основного уровня

Функции этого уровня составляют минимальный уровень интерфейса драйверов ODBC.

Функция API	Примечания
SQLAllocConnect	Выделяет память для дескриптора связи hdbc, в среде, определяемой дескриптором henv. Диспетчер драйверов обрабатывает этот вызов и вызывает функцию SQLAllocConnect, если вызваны функции SQLConnect, SQLBrowseConnect или SQLDriverConnect.
SQLAllocEnv	Выводит диалоговое окно, указывающее требования к клиентскому программному обеспечению Oracle, затем возвращает дескриптор SQL_NULL_HANDLE. Если клиентское программное обеспечение Oracle не установлено, эта функция выделяет память для дескриптора среды henv, и инициализирует интерфейс ODBC уровня вызовов для использования любым приложением.
SQLAllocStmt	Выделяет память для дескриптора инструкции и ассоциирует дескриптор со связью, описываемой дескриптором hdbc. Диспетчер драйверов передает этот вызов драйверу, выделяющему память для структуры hstmt.
SQLBindCol	Определяет пространство, необходимое для результирующего столбца, и указывает тип результата.
SQLCancel	Прекращает обработку дескриптора инструкции hstmt. В некоторых случаях система Oracle не позволяет остановить исполняемую инструкцию. Это значит, что исполнение инструкции будет продолжено, пока система Oracle не завершит процесс, после чего результаты выполнения инструкции будут отменены драйвером ODBC.
SQLColAttributes	Возвращает сведения описания столбца. Сведения описания возвращаются как строка символов, 32-разрядное значение, зависящее от описания, или целое числовое значение.
SQLConnect	Соединяется с источником данных. Чтобы использовать службу проверки подлинности операционной системы Oracle, укажите "/" в качестве параметра szUID и "" в качестве параметра szAuthStr.
SQLDescribeCol	Возвращает имя, тип, точность, границы и возможность обнуления определенного результирующего столбца. Замечание    Функция SQLDescribeCol возвращает вычисленные столбцы как тип SQL_VARCHAR.
SQLDisconnect	Закрывает связь. Если для общей среды разрешена группировка подключений, и приложение вызывает функцию SQLDisconnect для подключения этой среды, подключение возвращается в группу подключений и остается доступной для других компонентов, использующих общую среду.
SQLError	Возвращает ошибку или сведения состояния о последней ошибке. Драйвер поддерживает стек или список ошибок, которые могут быть возвращены аргументам hstmt, hdbc и henv, в зависимости от способа, которым была вызвана функция SQLError. После выполнения каждой инструкции очередь ошибок сбрасывается. Обычно извлекает сообщение об ошибке системы Oracle или остается пустой.
SQLExecDirect	Выполняет новую инструкцию SQL, которую можно подготовить заранее. Если в инструкции использованы параметры, драйвер использует текущие значения переменных метки параметра. Если имена таблиц, представлений или полей содержат пробелы, заключите эти имена в кавычки. Например, если в базе данных есть таблица с именем «Моя таблица» и поле «Мое поле», заключите каждый элемент идентификатора в кавычки следующим образом: SELECT "Моя таблица". "Мое поле1",; "Моя таблица"."Мое поле2" FROM "Моя таблица"
SQLExecute	Выполняет подготовленную инструкцию SQL (инструкция, заранее подготовленная функцией SQLPrepare). Если в инструкции использованы параметры, драйвер использует текущие значения переменных меток параметров.
SQLFetch	Извлекает одну строку из результирующего набора в место, указанное предыдущим вызовом функции SQLBindCol. Подготавливает драйвер к вызову функции SQLGetData для несвязанных столбцов.
SQLFreeConnect	Освобождает дескриптор подключения и всю память, выделенную этому дескриптору.
SQLFreeEnv	Закрывает драйвер ODBC и освобождает всю память, связанную с драйвером.
SQLFreeStmt	Останавливает обработку, связанную с определенным дескриптором hstmt, закрывает все открытые курсоры, связанные с этим дескриптором hstmt, сбрасывает ожидающие результаты и (не обязательно) освобождает все ресурсы, связанные с дескриптором инструкции.
SQLGetCursorName	Возвращает имя курсора, связанного с определенным дескриптором hstmt.
SQLNumResultCols	Возвращает количество столбцов в курсоре результирующего набора.
SQLPrepare	Подготавливает инструкция SQL, планируя оптимизацию и исполнение инструкции. Инструкция SQL компилируется для исполнения функцией SQLExecDirect. Если имена таблиц, представлений или полей содержат пробелы, заключите эти имена в кавычки. Например, если в базе данных есть таблица с именем «Моя таблица» и поле «Мое поле», заключите каждый элемент идентификатора в кавычки следующим образом: SELECT "Моя таблица"."Мое поле" FROM "Моя таблица" Подробнее об использовании результирующих наборов, содержащих массивы в качестве формальных параметров, см. раздел Возвращение параметров массивов из хранимых процедур.
SQLRowCount	Система Oracle не предоставляет способа определения количества строк в результирующем наборе, пока не будет извлечена последняя строка, поэтому функция возвращает –1.
SQLSetCursorName	Связывает имя курсора с активным дескриптором инструкции hstmt.
SQLSetParam	В системе ODBC 2.x заменена функцией SQLBindParameter.
SQLTransact	Запрашивает выполнение или откат выполнения всех операций над всеми дескрипторами инструкций (hstmt), ассоциированных с подключением или, для всех подключений, с дескриптором среды, henv. Если происходит сбой выполнения в ручном режиме, транзакция остается активной; вы можете выбрать откат или повтор операции выполнения. Если происходит сбой операции выполнения в режиме автоматической транзакции, производится автоматический откат транзакции; транзакция не может быть неактивной.


Функции API уровня 1

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

Функция API	Примечания
SQLColumns	Создает результирующий набор для таблицы, являющийся списком столбцов указанной таблицы или таблиц. Если запрашиваются столбцы для синонима PUBLIC, следует установить атрибут связи SYNONYMCOLUMNS и указать пустую строку в качестве аргумента szTableOwner. Возвращая столбцы для синонимов PUBLIC, драйвер устанавливает значение столбца TABLE NAME равным пустой строке. В результирующем наборе содержится дополнительный столбец ORDINAL POSITION в конце каждой строки. Это значение соответствует порядковому номеру столбца в таблице.
SQLDriverConnect	Соединяется с существующим источником данных. Подробнее см. раздел Атрибуты строки подключения.
SQLGetConnectOption	Возвращает текущие настройки параметров связи. Функция поддерживается не полностью. Драйвер поддерживает все значения аргумента fOption, но не поддерживает некоторые значения vParam параметра SQL_TXN_ISOLATION аргумента fOption. Подробнее см. таблицу параметров связи.
SQLGetData	Извлекает значение одного поля в текущей записи определенного результирующего набора.
SQLGetFunctions	Возвращает значение TRUE для всех поддерживаемых функций. Реализована диспетчером драйверов.
SQLGetInfo	Возвращает сведения о драйвере ODBC и источнике данных, ассоциированном с дескриптором подключения hdbc, в том числе параметры SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT и SQLSMALLINT *.
SQLGetStmtOption	Возвращает текущую настройку параметра инструкции. Подробнее см. таблицу параметров связи.
SQLGetTypeInfo	Возвращает сведения о типах данных, поддерживаемых источником данных. Драйвер возвращает сведения в виде результирующего набора SQL.
SQLParamData	Используется вместе с функцией SQLPutData для задания данных параметра во время выполнения инструкции.
SQLPutData	Позволяет приложению посылать драйверу данные для параметра или столбца во время выполнения инструкции.
SQLSetConnectOption	Предоставляет доступ к параметрам, управляющим аспектами подключений. Функция поддерживается не полностью: драйвер поддерживает все значения аргумента fOption, но не поддерживает некоторые значения vParam параметра SQL_TXN_ISOLATION аргумента fOption. Подробнее см. таблицу параметров связи.
SQLSetStmtOption	Устанавливает параметры, связанные с дескриптором инструкции hstmt. Подробнее см. таблицу параметров инструкций.
SQLSpecialColumns	Извлекает оптимальный набор столбцов, который однозначно определяет строку в таблице.
SQLStatistics	Извлекает список статистики одной таблицы и индексы или имена тэгов, ассоциированные с таблицей. Драйвер возвращает сведения в виде результирующего набора SQL.
SQLTables	Возвращает список имен таблиц, указанных в качестве параметра функции SQLTables. Если параметр не указан, возвращает имена таблиц, хранящихся в текущем источнике данных. Драйвер возвращает сведения в виде результирующего набора SQL.  Вызовы перечислимых типов не получат записи результирующего набора для удаленных представлений или локальных параметрических представлений. Однако вызов функции SQLTables с неповторяющимся определителем имени таблицы найдет подходящую запись для представления такого рода с указанным именем, если такое представление существует; это позволяет интерфейсу API проверять конфликты имен прежде, чем будет создана новая таблица. Синонимы PUBLIC возвращаются со значением TABLE_OWNER, равным "". Синонимы VIEWS, принадлежащие SYS или SYSTEM, определяются как SYSTEM VIEW.


Функции API уровня 2

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

Функции API	Примечания
SQLBindParameter	Ассоциирует буфер с меткой параметра в инструкцию SQL.
SQLBrowseConnect	Возвращает последовательные уровни атрибутов и их значений.
SQLDataSources	Перечисляет имена источников данных. Реализована диспетчером драйверов.
SQLDescribeParam	Возвращает описание метки параметра, ассоциированное с инструкцией SQL. Возвращает предположительный тип параметра, основываясь на анализе инструкции. Если тип параметра не поддается определению, возвращается значение SQL_VARCHAR длиной 2000.
SQLDrivers	Реализована диспетчером драйверов.
SQLExtendedFetch	Похожа на функцию SQLFetch, но возвращает несколько строк, используя массив для каждого столбца. Результирующий набор поддается прокручиванию вперед и может быть сделан доступным для прокручивания назад, если курсор определен как статический, а не как прокручиваемый только вперед. Для курсоров, доступных для прокручивания только вперед с привязкой столбцов по умолчанию данные столбцов из наборов данных, больших, чем значение атрибута связи BUFFERSIZE, выбираются непосредственно в буферы данных. Не поддерживает закладки с переменной длиной и выборку набора строк по смещению (отличному от 0) от закладки.
SQLForeignKeys	Возвращает список внешних ключей в одной таблице или список внешних ключей других таблиц, ссылающихся на данную таблицу.
SQLMoreResults	Определяет, существуют ли результаты, ожидающие обработки, для дескриптора инструкции hstmt, содержащего инструкции SELECT, UPDATE, INSERT или DELETE, и если такие результаты существуют, запускает их обработку.  Система Oracle поддерживает множественные результирующие наборы только из хранимых процедур с помощью Esc-последовательности {результирующий_набор… }.
SQLNativeSql	Об использовании функции см. раздел Возвращение параметров массивов из хранимых процедур.
SQLNumParams	Возвращает количество параметров инструкции SQL. Количество параметров должно соответствовать количеству знаков вопроса в инструкции SQL, передаваемом функции SQLPrepare.
SQLPrimaryKeys	Возвращает имена столбцов, составляющих первичный ключ таблицы.
SQLProcedureColumns	Возвращает список параметров ввода и вывода, возвращаемое значение, столбцы результирующего набора одной процедуры и два дополнительных столбца — OVERLOAD и ORDINAL_POSITION. Столбец OVERLOAD — это столбец OVERLOAD таблицы ALL_ARGUMENTS представления Oracle Data Dictionary View. Столбец ORDINAL_POSITION — это столбец SEQUENCE таблицы ALL_ARGUMENTS представления Oracle Data Dictionary View. Для пакетных процедур столбец PROCEDURE NAME имеет формат имяпакета.имяпроцедуры. Функция не возвращает процедурных столбцов созданного синонима, ссылающегося на процедуру или функцию.
SQLProcedures	Возвращает список процедур источника данных; столбец PROCEDURE NAME имеет формат имяпакета.имяпроцедуры. Поскольку система Oracle не предоставляет способа, позволяющего отличить пакетные процедуры от пакетных функций, для столбца PROCEDURE_TYPE драйвер возвращает значение SQL_PT_UNKNOWN.
SQLSetPos	Устанавливает позицию курсора в наборе строк. Функцию SQLSetPos можно использовать с функцией SQLGetData для извлечения строк из несвязанных столбцов после позиционирования курсора на определенную строку набора строк. Строки, добавленные к результирующему набору с помощью значения SQL_ADD параметра fOption, добавляются после последней строки результирующего набора.
SQLSetScrollOptions	Устанавливает параметры, управляющие работой курсоров, ассоциированных с дескриптором инструкции hstmt. Подробнее см. таблицу типов курсоров и комбинаций одновременности.


Таблица параметров связи

Эти параметры позволяют настроить связь базы данных с приложением.

Параметр связи	Примечания
SQL_AUTOCOMMIT	Если выбран параметр SQL_AUTOCOMMIT_OFF, приложение должно в явном виде производить выполнение или откат транзакций с помощью функции SQLTransact.
SQL_ODBC_CURSORS	Этот атрибут связи реализован в диспетчере драйверов.
SQL_OPT_TRACE	Этот атрибут связи реализован в диспетчере драйверов.
SQL_OPT_TRACEFILE	Этот атрибут связи реализован в диспетчере драйверов.
SQL_TRANSLATE_DLL	Возвращает ошибку: «Недопустимый драйвер».
SQL_TRANSLATE_OPTION	32-разрядное значение, передаваемое библиотеке DLL трансляции.
SQL_TXN_ISOLATION	Драйвер разрешает только значение SQL_TXN_READ_COMMITTED. Следующие значения vParams не поддерживаются. SQL_TXN_READ_UNCOMMITTED SQL_TXN_REAPEATABLE_READ SQL_TXN_SERIALIZABLE
SQL_ATTR_ENLIST_IN_DTC	Этот атрибут связи интерфейса ODBC версии 3.0 позволяет использовать драйвер Oracle ODBCв распределенных транзакциях, координируемых сервером Microsoft Transaction Server. Он предоставляет указатель интерфейса pITransaction в качестве аргумента vParam.
SQL_ATTR_CONNECTION_DEAD	Этот атрибут связи ODBC 3.5, доступный только для чтения, позволяет определить, произошел ли сбой связи с сервером Oracle. Возможно только значение  Get, значение Set невозможно.


Таблица параметров инструкций

Эти параметры позволяют настраивать определенные инструкции в приложении.

Параметр инструкции	Примечания
SQL_BIND_TYPE	Не может быть больше 2 147 483 647 байт или доступного количества памяти.
SQL_CONCURRENCY	Разрешенные значения см. в таблице типов курсоров и комбинаций одновременности.
SQL_CURSOR_TYPE	Драйвер не позволяет использовать значение SQL_CURSOR_DYNAMIC. Подробнее см. функцию SQLSetScrollOptions. Возможные параметры см. в таблице типов курсоров и комбинаций одновременности.
SQL_GET_BOOKMARK	Возвращает 32-разрядное целое значение, являющееся закладкой для текущего номера записи. Возможно только значение Get, значение Set невозможно.
SQL_KEYSET_SIZE	Может иметь только значение 0.
SQL_MAX_ROWS	Максимальное количество записей, возвращаемых из результирующего набора.
SQL_ROW_NUMBER	Возвращает 32-разрядное целое значение, указывающее позицию текущей строки в результирующем наборе. Возможно только значение Get, значение Set невозможно.
SQL_ROWSET_SIZE	Не может быть больше 4 294 967 296 строк; однако, чтобы компьютер мог обработать запрос, на нем должно быть достаточно виртуальной памяти.
SQL_USE_BOOKMARKS	Поддерживает значение  SQL_UB_ON и устанавливает закладки фиксированной длины.


Таблица типов курсоров и комбинаций одновременности

Типы курсоров управляют работой курсора, предоставляемого пользователю. Параметры одновременности управляют возможностью обновления и запиранием результирующего набора.

Тип курсора	Одновременность (разрешенные значения)
SQL_CURSOR_FORWARD_ONLY	SQL_CONCUR_READ_ONLY
SQL_CURSOR_STATIC	SQL_CONCUR_READ_ONLY
SQL_CURSOR_KEYSET_DRIVEN*	SQL_CONCUR_READ_ONLY SQL_CONCUR_LOCK ** SQL_CONCUR_VALUES
Замечания

* См. раздел Ограничения использования курсоров, управляемых наборами ключей.

** Значение SQL_CONCUR_LOCK поддерживается, только если параметр SQL_AUTOCOMMIT имеет значение SQL_AUTOCOMMIT_OFF.


Сообщения об ошибках

Если возникает ошибка, драйвер Microsoft ODBC для Oracle возвращает значение SQLSTATE (код ошибки ODBC) и сообщение об ошибке. Драйвер получает эти сведения как из ошибок, определенных самим драйвером, так и из ошибок, возвращаемых сервером Oracle Server.

Сообщения, возвращаемые драйвером Oracle ODBC

Если доступно сообщение об ошибке системы Oracle, оно будет возвращено с предшествующими им тэгами [Microsoft], [ODBC Driver for Oracle] и [Oracle]; иначе сообщение возвращается без тэга [Oracle], как это показано в следующих примерах.

Сообщения об ошибках системы Oracle

[Microsoft][ODBC Driver for Oracle][Oracle]ORA-nnnnn текст-сообщения

Сообщение об ошибке драйвера Oracle ODBC.

[Microsoft][ODBC Driver for Oracle]