REFERATUA.ORG.UA — База українських рефератів




розмовах.

Коцепції API ODBC.

Основною частиною системи ODBC є драйвер. Драйвери можуть бути однорівневі та багаторівневі. Однорівневі драйвери обробляють звертання ODBC і оператори SQL, а багаторівневі – обробляють звертання ODBC та передають оператори SQL джерелу даних (можливо, серверу, розташованому де-небудь в мережі). ODBC не вимагає, щоб драйвери підтримували всі функції цього інтерфейсу. Замість цього для драйверів визначаються рівні відповідності API та граматики SQL. Єдина вимога: якщо драйвер задовільняє деякому рівню, то він повинен підтримувати всі функції ODBC, визначені на цьому рівні, незалежно від того, чи підтримує їх база даних. Так як в обов'язки драйвера входить емуляція функцій ODBC, що не підтримуються системою керування базою даних, то інтерфейс ODBC не залежить від реалізації бази даних.

Рівні відповідності API та граматики SQL для ODBC.

Тип

Рівень відповідності

Опис

Рівні

відповідності

API

Ядро

Всі функції із специфікації SAG CLI. Виділення і

звільнення описувачів зв'язку, SQL-оператора і

оточення. Підготовка і виконання операторів

SQL. Отримання результату і службової

інформації про результат. Отримання інформації

про помилки. Здатність виконувати транзанкції.

Рівень 1

Розширений набір 1 включає API ядра плюс

можливості посилати і отримувати часткові

набори даних, шукати інформацію в каталозі,

отримувати інформацію про можливості

драйвера і бази даних, тощо.

Рівень 2

Розширений набір 2 включає рівень 1 плюс

можливості обробляти масиви як параметри,

можливість прокрутки курсору, виклик DLL

транзанкцій, тощо.

Рівні

відповідності

граматики

SQL

Мінімальна

граматика

Функції створення і видалення таблиць в мові

визначення даних. Прості функції вибору,

вставки, модифікації і видалення в мові

маніпулювання даними. Прості вирази.

Граматика ядра

Відповідність специфікаціям SAG CAE 1992 на

мінімальну граматику плюс зміна таблиць,

створення і видалення індексу, створення і

видалення логічних таблиць бази даних для DLL.

Повний оператор SELECT для DDL. Повний

Оператор SELECT для DML. Функціїї в виразах,

наприклад, SUM and MAX.

Розширена

граматика

Додаткові можливості, такі як зовнішні

з'єднання, позиційовані модифікація і видалення,

більше виразів і типів даних, виклики процедур.

ODBC не є еквівалентом Embedded SQL (Вбудований SQL), який використовує оператори SQL в вихідних програмах, написаних на інших мовах. Схожі гібрідні програми перед передечею компілятору основної мови програмування оброблюються прекомпілятором. ODBC інтерпретує оператори SQL під час виконання. Основна програма не потребує прекомпіляції для виконання різних операторів SQL, як і не треба компілювати окремі версії програми для різних джерел даних.

Блок-схема типової ODBC-програми.

Перш ніж реалізувати оператори SQL, застосування ODBC повинно виконати ряд дій, щоб під'єднатись до джерела даних. Типові дії звертання ODBC:

Visual CVisual CSQLAllocEnv(); Виділяє середовище ODBC

Visual CVisual CSQLAllocConnect(); Виділяє пам'ять для підключення

Visual CVisual CSQLConnect(); Завантажує драйвер, підключає до джерела

//Виконати оператори ODBC

SQLPrepare();

SQLExecute();

SQLBindCol();

SQLFetch();

.....

Visual CVisual CSQLAllocStmt(); Виділяє пам'ять для оператора SQL

Visual CSQLFreeStmt(); Звільнює пам'ять, виділену для оператора

Visual CSQLDisconnect(); Перерозподіляє драйвер, відключає від джерела

Visual CSQLFreeConnect(); Звільнює пам'ять, виділену для підключення

Visual CSQLFreeEnv(); Звільнює середовище, перериває сеанс

Виклик SQLAllocEnv() ініціалізує бібліотеку ODBC і повертає дескриптор типу SQLHENV. Дескриптор типу SQLHDBC, що повертається функцією SQLAllocConnect(), використовується в наступних звертаннях до функцій ODBC для посилання на певне підключення. Одне застосування може підтримувати декілька відкритих підключень. Функція SQLConnect() шляхом завантаження драйверу і підключення до джерела даних встановлює з'єднання. Це звертання до функції має варіанти; наприклад, виклик SQLDriverConnect(), можна використовувати для підключення до джерел даних, які не встановлюються за допомогою програми початкової установки ODBC. SQLBrowseConnect() дозволяє застосуванню циклічно продивлятися джерела даних. Виділяючи пам'ять для оператора SQL за допомогою функції SQLAllocStmt() на окремому кроці, ODBC забезпечує механізм, при якому оператори можуть конструюватися і використовуватися один раз і кілька разів перш, ніж виділена пам'ять. Після цих чотирьох звертань, як правило, застосування ODBC створює звертання до бази даних для виконання операторів SQL. Воно може використовувати функцію SQLPrepare() для підготовки (компіляції) оператора SQL для виконання і функцію SQLExecute() для дійсного його виконання. В якості альтернативи виклику SQLPrepare() та SQLExecute() застосування можуть використовувати функцію SQLExecDirect() для виконання оператора SQL в одній дії. Спочатку стовпчики зв'язуються з змінними програми за допомогою SQLBindCol, потім ці змінні зчитуються після виконання SQLFetch() над рядком таблиці. Якщо даних більше нема, SQLFetch() повертає SQL_NO_DATA_FOUND. В якості альтернативи використанню SQLBindCol() для пов'заних стовпців застосування можна використовувати функцію SQLGETDATA() для отримання даних з незв'язаних стовпців.

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

В ODBC 3.0 функція SQLFreeHandle() використовується замість функцій ODBC 2.x SQLFreeEnv(), SQLFreeConnect(), SQLFreeHandle().

Програма установки ODBC.

Програма установки ODBC викликається за допомогою Control Panel (Панель керування) в Windows і використовується для регістрації джерел даних. Що саме є джерелом даних? Це залежить від драйвера. У випадку такого драйвера, як SQL Server, джерелом даних може бути база даних на сервері. В випадку драйвера Microsoft Access або Microsoft Excel база даних є файлом (MDB або XLS). В випадку Microsoft Text Driver база даних – це каталог, що містить текстові файли, які стосовно драйвера є таблицями в базі даних. Останні версії ODBC розрізняють три типи джерел даних. Джерело даних користувача – це джерело даних, яке бачить лише той, хто його створив. Джерело системних даних доступне


 
Загрузка...