Главная ]
1.1.4.Подключение к БД
Программирование
Базы данных



После создания и инициализации дескриптора БД, и небязательных установок в DPB, определяющих параметры соединения, используется функция  isc_attach_database() для подключения к существующей БД. Помимо распределения ресурсов системы для соединения с БД эта функцияя связывает определенную БД с дескриптором БД для последующего его использования в других API вызовах. 

isc_attach_database() требует 6 параметров       

  • Указатель на вектор ошибки, откуда можно узнать ошибках если они были.

  • Длина в байтах имени БД для открытия БД. Если имя БД включает имя и путь, указывается их общая длина.

  • Строка содержащая имя БД для подключения. Имя может включать имя БД и путь к ней.

  • Указатель на дескриптор БД .

  • Длина в байтах DPB. Если DPB остался по умолчанию то, устанавливается в 0.

  • Указателъ на DPB. Если DPB остался по умолчанию то, устанавливается в NULL.

Каждая БД требует отдельного вызова isc_attach_database().

Следующий код показывает подключение к демо базе xsample.gdb.

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <time.h> 
#include <ibase.h> 
  
isc_db_handle db; 
ISC_STATUS status_vector[20]; 
short dpb_buf_len=20; 
char dpb_buf[]={ 
                                                isc_dpb_version1,                    //версия буфера  
                                                isc_dpb_user_name,                //начинается кластер параметра имя пользователя 
                                                6,                                             //длина этого параметра 6 байт 
                                                'S','Y','S','D','B','A',                //строка имени пользователя 
                                                isc_dpb_password,                  //начинается кластер пароля пользователя 
                                                9,                                             //длина его 9 байт 
                                                'm','a','s','t','e','r','k','e','y'         //сам пароль 
                        }; 
  
int main() 
{ 
 char str[]="c:\\Doc\\Ibgpre\ibmake\\xsample.gdb"; 
  
 isc_attach_database(status_vector, strlen(str), str, &db,dpb_buf_len,dpb_buf); 
 if (status_vector[0] == 1 && status_vector[1]) 
 { 
   isc_print_status(status_vector);            //печать информации по ошибке 
 } 
 if(db) 
  isc_detach_database(status_vector, &db); 
  
 return 0; 
} 

Это все что касается подключения.  

<< Назад ] Содержание ] Далее >> ]

Дизайн: Piton Alien
Rambler's Top100 Рейтинг@Mail.ru
Сайт создан в системе uCoz