# ODBC
Драйвер ODBC NitrosBase поддерживает базовые возможности ODBC в семантике вызовов ODBC 3.0 в пределах функциональности самой СУБД.
Уровень реализации функциональности — ODBC Core.
Примеры использования драйвера находятся в папке examples дистрибутива.
# Поддерживаемая функциональность
Функции управления соединением:
SQLDriverConnectSQLDisconnect
Функции аллокации:
SQLAllocHandleSQLFreeHandleSQLAllocEnvSQLFreeEnvSQLAllocConnectSQLFreeConnectSQLAllocStmtSQLFreeStmtSQLAllocDescSQLFreeDesc
Функции выборки данных:
SQLPrepareSQLExecuteSQLExecDirectSQLGetDataSQLFetchSQLNumResultColsSQLRowCountSQLDescribeColSQLNativeSql
Функции диагностики
SQLGetDiagRecSQLGetDiagFieldSQLError
# Неподдерживаемая функциональность
В версии драйвера 1.0 не поддерживается следующая функциональность:
- скалярные функции ODBC (opens new window);
- параметризованные запросы.
Также следующие функции реализованы лишь как «заглушки», при их вызове возвращается ошибка «Не реализовано».
Функции транзакций
SQLEndTranSQLTransact
Функции атрибутов
SQLSetConnectAttrSQLGetConnectAttrSQLGetStmtAttrSQLSetStmtAttrSQLSetEnvAttr
Функции параметров
SQLBindParameterSQLPutDataSQLParamDataSQLNumParams
Функции курсоров
SQLCloseCursorSQLGetCursorNameSQLSetCursorName
# Нестандартная функциональность
Ниже приведены замечания к реализации в драйвере NitrosBase отдельных функций.
# SQLDriverConnect
Реализован только режим соединения SQL_DRIVER_NOPROMPT. Попытка создать соединение в другом режиме вызовет ошибку IM001 not implemented.
Имена атрибутов для строки соединения:
DRIVER— имя драйвера, должно быть"NitrosBase Driver";SERVER— имя или адрес сервера БД;PORT— TCP-порт сервера БД. Необязателен, по умолчанию3020;UID— имя пользователя БД;PWD— пароль пользователя БД.
# SQLGetDiagField
Реализованы следующие идентификационные коды (параметр DiagIdentifier):
SQL_DIAG_NATIVESQL_DIAG_MESSAGE_TEXTSQL_DIAG_SQLSTATE
Вызов функции с иными номерами кодов вернет статус SQL_NO_DATA.
# SQLGetDiagRec
При обработке ошибок сохраняется лишь одна (последняя) запись об ошибке. Попытка вызвать функцию с значением параметра RecNumber, отличающимся от единицы, приведет к ошибке.
# SQLPrepare
Производит непосредственное выполнение запроса, так как в текущей версии драйвера и СУБД параметризованные запросы не поддерживаются.
# SQLFetch
В текущей версии драйвера окончание данных в результирующем наборе приводит к возврату статуса SQL_ERROR.
# SQLNumResultCols
Вызов функции необходимо делать после каждого вызова SQLFetch — ввиду того, что в графовой модели данных число полей является переменной величиной.
# SQLRowCount
Название функции зарезервировано, но реализация отсутствует. Получить количество записей в ответе до окончания итерации по всем записям невозможно, что связано со спецификой реализацией самой СУБД.
# SQLNativeSql
Название функции зарезервировано, однако реализация отсутствует.
Метаязык ODBC (функции ODBC и пр.) не поддерживается текущей версией драйвера.
← .NET API