Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Ошибка подключения к БД FireBird


Автор: Oberon83 7.2.2007, 16:51
Не могу никак понять почему возникает данная ошибка при попытке подключения к БД:
Cannot perform operation - DB is currently open
Причем самое интересное то, что программа РАБОТАЛА. Просто я некоторое время ей не занимался и НИЧЕГО в ней не менял. Раньше нормально работалая, сейчас нет.

Функция подключения:
Код

bool connect_database(TIBDatabase* database,AnsiString user,AnsiString password){
AnsiString param;

//Заносим пользователя и пароль в строку подключения к БД
param = "user_name=" + user;
database->Params->Add(param);
param = "";
param = "password=" + password;
database->Params->Add(param);
param = "";
param = "lc_ctype=WIN1251";
database->Params->Add(param);
param = "";


//Обработка коннекта к БД
try{
   database->Open();
   }
   catch(EIBInterBaseError &e) {
   AnsiString message;
   message = "Невозможно подключиться к БД:\n";
   message += e.Message;
   MessageBox(0, message.c_str(), "Подключение к базе данных", MB_OK);
   }


if(database->Connected) return 1;
  else return 0;
}


Ошибка вылетает вот здесь:
Код

if(connect_database(Form1->IBDatabase1,"SYSDBA","masterkey")){ //Вот на этой строке вылетает ошибка при запуске приложения

//Здесь уже идет выборка из БД и т.д.

}


В чем может быть дело?

Автор: _hunter 7.2.2007, 17:35
может стоит внешние причины проверить -- например файл базы пропал (или read only стал)...

Автор: Anikmar 7.2.2007, 20:56
Я думаю, что в дезайн-тайме в компоненте установлено свойство active = true.

Или что-то там аналогичное - т.е. при запуске программы компонент уже открыт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)