Использование API для доступа к БД


В ряде СУБД при разработке приложений используются библиотеки функций, представляющие собой интерфейс между прикладными программами и СУБД(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, &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’;


Комментарии запрещены.




Статистика