# ODBC
Драйвер ODBC NitrosBase поддерживает базовые возможности ODBC в семантике вызовов ODBC 3.0 в пределах функциональности самой СУБД.
Уровень реализации функциональности — ODBC Core.
Примеры использования драйвера находятся в папке examples дистрибутива.
# Поддерживаемая функциональность
Функции управления соединением:
SQLDriverConnect
SQLDisconnect
Функции аллокации:
SQLAllocHandle
SQLFreeHandle
SQLAllocEnv
SQLFreeEnv
SQLAllocConnect
SQLFreeConnect
SQLAllocStmt
SQLFreeStmt
SQLAllocDesc
SQLFreeDesc
Функции выборки данных:
SQLPrepare
SQLExecute
SQLExecDirect
SQLGetData
SQLFetch
SQLNumResultCols
SQLRowCount
SQLDescribeCol
SQLNativeSql
Функции диагностики
SQLGetDiagRec
SQLGetDiagField
SQLError
# Неподдерживаемая функциональность
В версии драйвера 1.0 не поддерживается следующая функциональность:
- скалярные функции ODBC (opens new window);
- параметризованные запросы.
Также следующие функции реализованы лишь как «заглушки», при их вызове возвращается ошибка «Не реализовано».
Функции транзакций
SQLEndTran
SQLTransact
Функции атрибутов
SQLSetConnectAttr
SQLGetConnectAttr
SQLGetStmtAttr
SQLSetStmtAttr
SQLSetEnvAttr
Функции параметров
SQLBindParameter
SQLPutData
SQLParamData
SQLNumParams
Функции курсоров
SQLCloseCursor
SQLGetCursorName
SQLSetCursorName
# Нестандартная функциональность
Ниже приведены замечания к реализации в драйвере NitrosBase отдельных функций.
# SQLDriverConnect
Реализован только режим соединения SQL_DRIVER_NOPROMPT
. Попытка создать соединение в другом режиме вызовет ошибку IM001 not implemented
.
Имена атрибутов для строки соединения:
DRIVER
— имя драйвера, должно быть"NitrosBase Driver"
;SERVER
— имя или адрес сервера БД;PORT
— TCP-порт сервера БД. Необязателен, по умолчанию3020
;UID
— имя пользователя БД;PWD
— пароль пользователя БД.
# SQLGetDiagField
Реализованы следующие идентификационные коды (параметр DiagIdentifier
):
SQL_DIAG_NATIVE
SQL_DIAG_MESSAGE_TEXT
SQL_DIAG_SQLSTATE
Вызов функции с иными номерами кодов вернет статус SQL_NO_DATA
.
# SQLGetDiagRec
При обработке ошибок сохраняется лишь одна (последняя) запись об ошибке. Попытка вызвать функцию с значением параметра RecNumber, отличающимся от единицы, приведет к ошибке.
# SQLPrepare
Производит непосредственное выполнение запроса, так как в текущей версии драйвера и СУБД параметризованные запросы не поддерживаются.
# SQLFetch
В текущей версии драйвера окончание данных в результирующем наборе приводит к возврату статуса SQL_ERROR
.
# SQLNumResultCols
Вызов функции необходимо делать после каждого вызова SQLFetch
— ввиду того, что в графовой модели данных число полей является переменной величиной.
# SQLRowCount
Название функции зарезервировано, но реализация отсутствует. Получить количество записей в ответе до окончания итерации по всем записям невозможно, что связано со спецификой реализацией самой СУБД.
# SQLNativeSql
Название функции зарезервировано, однако реализация отсутствует.
Метаязык ODBC (функции ODBC и пр.) не поддерживается текущей версией драйвера.
← .NET API