- •Лекция 12. Функциональные и обеспечивающие подсистемы
- •1. Элементы функциональных подсистем
- •1.1. Блок хранения документов
- •1.2. Блок комплектования
- •1.3. Блок каталогов
- •1.4. Блок указателей
- •1.5. Блоки пользовательского интерфейса
- •2. Обеспечивающие подсистемы
- •2.1. Техническое и организационное обеспечение
- •2.2. Информационное обеспечение
- •2.3. Лингвистическое обеспечение
- •2.4. Программное обеспечение
- •2.5. Нормативное обеспечение
- •3.2.2.2. Система Visual FoxPro
- •Язык программирования 4-го поколения 4gl
- •4.7.Вопросы практического програмирования.
- •4.7.1.Использование специализированных библиотек и встраиваемого sql.
- •4.7.3.Odbc - открытый интерфейс к базам данных на платформе ms wIndows.
- •4.7.4.Jdbc - мобильный интерфейс к базам данных на платформе Java.
- •Функциональная модель odbc Основа odbc
- •Архитектура odbc
- •Создание источника данных
- •Утилита odbc
- •Создание источника данных с использованием odbc api
- •Коды возврата
- •Основные понятия
- •Объектная модель ole db
- •Создание результирующего набора
- •Глава 9 Запросы к базе данных
- •Лекция 33. Основные понятия и классификация case-технологий
Коды возврата
Все функции ODBC API возвращают значения, называемые кодами возврата. Код возврата определяет, была ли функция выполнена успешно, или характеризует тип произошедшей ошибки.
В заголовочном файле sql.h определены следующие коды возврата:
#define SQL_SUCCESS 0 |
Функция выполнена успешно |
#define SQL_SUCCESS_WITH_INFO 1 |
Функция выполнена успешно, но с уведомительным сообщением |
#if (ODBCVER >= 0x0300) #define SQL_NO_DATA 100 #endif |
Больше нет строк для извлечения их из результирующего набора. В предыдущей версии ODBC API этот код возврата обозначался как SQL_NO_DATA_FOUND. В версии 3.x код возврата SQL_NO_DATA_FOUND содержатся в заголовочном файле sqlext.h |
#define SQL_ERROR (-1) |
При выполнении функции произошла ошибка |
#define SQL_INVALID_HANDLE (-2) |
Указан неверный дескриптор |
#define SQL_STILL_EXECUTING 2 |
Функция, выполняемая асинхронно, пока не завершена |
#define SQL_NEED_DATA 99 |
Для успешного выполнения данной функции следует предварительно определить необходимые данные |
Первые два кода возврата определяют, что функция была выполнена, а остальные информируют о типе произошедшей ошибки.
Для определения типа кода возврата в заголовочном файле sqltypes.h введено следующее объявление:
typedef signed short RETCODE;
Основные понятия
OLE DB представляет собой набор COM-интерфейсов (Component Object Model), которые предоставляют приложению-клиенту унифицированный доступ к различным источникам данных.
Можно сказать, что OLE DB - это метод доступа к любым данным через стандартные COM-интерфейсы, вне зависимости от типа данных и места их расположения. В качестве данных могут выступать базы данных, простые документы, таблицы Excel и любые другие источники данных. В отличие от доступа, предоставляемого посредством драйверов OBDC, OLE DB позволяет реализовывать доступ к источникам данных, как с применением языка SQL (к SQL-серверам), так и к любым другим произвольным источникам данных.
Средства, предоставляющие доступ к источнику данных с использованием технологии OLE DB, называются OLE DB провайдерами. Программы-клиенты, использующие для доступа OLE DB провайдеры, называются потребителями данных.
В том случае, если существует только ODBC-драйвер для доступа к конкретному источнику данных, то для применения технологии OLE DB можно использовать OLE DB провайдер, предназначенный для доступа к ODBC-источнику данных.
Так как архитектура OLE DB основана на COM, то механизм создания результирующих наборов состоит из последовательностей шагов типа: 1. создание объекта -> 2. запрос указателя на интерфейс созданного объекта -> 3. вызов метода интерфейса.
Аналогично комплексу действий, который производится после создания результирующего набора при применении технологии ODBC - выполнению связывания, в технологии OLE DB используется механизм аксессоров. Аксессоры описывают, каким образом данные записываются в область памяти потребителя данных, устанавливая адресное соответствие между областью памяти в буфере потребителя данных и столбцами данных в результирующем наборе. Иногда такой набор связей называют картой столбцов (column map).