У ряді СУБД при розробці додатків використовуються бібліотеки функцій, що представляють собою інтерфейс між прикладними програмами і СУБД (Application Program Interface - API). В даний час існує багато нових API для доступу до БД. Це ODBC, JDBC, OLE DB.
1. Алгоритм взаємодії
1) Отримання доступу до БД
Програма отримує доступ до БД за допомогою виклику однієї або декількох API-функцій, що включають її до СУБД і конкретної БД.
приклад:
LOGINREC * loginrec; - структура для зберігання реєстраційних даних.
DBPROCESS * dbproc; - структура даних, що описує з'єднання.
loginrec = dblogin (); - створюємо реєстраційну структуру.
DBSTLUSER (loginrec, "username"); - вказуємо користувача.
DBSTLPWD (loginrec, "password"); - вказуємо пароль.
dbproc = dbopen (loginrec, "server"); - підключаємося до БД.
2) Формування операторів
SQL-оператор формується у вигляді текстового рядка, і потім рядок передається як параметр при виклику відповідної API-функції в СУБД
приклад:
char amount_str [31]; - число, що вводиться користувачем.
printf ( "Збільшити / зменшити обсяг продажів на:"); - запит на оновлення
gets (amount_str); - вводимо значення.
dbcmd (dbproc, "update SalesPeople set Amt = Amt +"); - передаємо оператор в DB-Library
dbcmd (dbproc, # 038; amount_str); - передаємо значення.
dbsqlexec (dbproc); - виконуємо оператор.
3) Контроль станів операторів і помилок
Програма викликає API-функції для перевірки стану переданого в СУБД оператора і для обробки помилок.
If (dbresult (dbproc)! = SUCCEED) printf ( "Помилка оновлення. \ N");
else printf ( "Оновлення вироблено. \ n");
4) Обробка отриманих результатів
Якщо SQL-оператор являє собою запит, то, викликаючи API-функції, програма зчитує результати запиту в свої змінні. Зазвичай за один виклик повертається одна рядки або один стовпець даних.
5) Відключення від БД
Своє звернення до БД програма закінчує викликом API-функції, яка відключає її від СУБД.
dbclose (dbproc); - розриваємо з'єднання.
// dbexit (); - розриваємо всі з'єднання.
return (0);
2. Особливості API
• API забезпечує більш ефективну і швидку зв'язок між прикладною програмою і СУБД.
• Істотно знижується мережевий трафік.
• Гнучкіше обробляються помилки
• Не потрібно предкомпілятор.
3. СУБД з API
• Oracle (спочатку було близько 20 функцій, зараз близько 60).
• SQLBase (75 функцій).
• MS SQL Server (100 функцій).
4. API MS SQL Server
Бібліотеку (в SQL Server це database Library - dblib), мають у своєму розпорядженні на клієнтській машині в файлі NtwDblib.Dll. Всі функції починаються на db *** ().
Примітка:
• Докладні відомості про MS SQL API можна знайти а довідковому файлі: dblibe.chm і dblibe.chi.
• Функції з бібліотеки dblib можуть бути включені в інші мови, наприклад, Паскаль.
Function DbCmd (DbProc: PDBPOCESS; CmdString: LPCSTR): RETCODE; cdecl;
...
Implementation
Function DbCmd; External 'NtwDblib.Dll' Name 'dbcmd';