Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
10 / 10 / 4
Регистрация: 10.09.2010
Сообщений: 197

Ошибка при работе с компонентами IBX

22.09.2010, 14:27. Показов 2227. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,
использую компоненты IBX для работы с БД. Есть проблема: подключась к БД, все работает, пробую подключиться к другой БД, используя теже компоненты и получаю ошибку
Cannot perform operation -- DB is currently open.
C++
1
2
3
4
5
6
7
IBDatabase1->DatabaseName = ListBox1->Items->Strings[i];
IBDatabase1->Params->Add("user_name=SYSDBA");
IBDatabase1->Params->Add("password=masterkey");
IBDatabase1->Params->Add("lc_ctype=WIN1251");
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("SELECT * FROM TABLE;");
IBQuery1->Open();
Если я правильно понимаю, то нужно составить условие и проверять используется ли БД, если да - отключиться, если нет, продолжить. Пробовал шаманить со свойствами - не вышло. Подскажите, пожалуйста, как лучше сделать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2010, 14:27
Ответы с готовыми решениями:

Ошибка при работе с динамическими компонентами
Делаю менюшку для игры. Пункты меню - Label и Image. При нажатии на какой либо пункт меню - очищаю форму от всего и создаю новые пункты...

Ошибка при работе с экселем
Всем привет!!!!! Подскажите помогите пж разобраться с ошибкой. База ацесовская, конект посредством адо, билдер 2009 Есть экселевский...

Ошибка при работе с TServerSocket
Написал клиент - сервер приложения. клиент работает очень просто и не имеет нареканий, а вот сервер раз в 2 дня выкидывает ошибку но...

4
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
22.09.2010, 14:37
C++
1
if (IBDatabase1->Connected) IBDatabase1->Connected = false;
ну а дальше меняешь настройки и снова открываешь соединение
1
10 / 10 / 4
Регистрация: 10.09.2010
Сообщений: 197
22.09.2010, 15:00  [ТС]
Туплю, наверное, но не выходит сделать...

Делаю так:

C++
1
2
3
4
5
6
7
8
9
10
11
if (IBDatabase1->Connected) {
IBDatabase1->Connected = false;
} else {
IBDatabase1->DatabaseName = ListBox1->Items->Strings[i];
IBDatabase1->Params->Add("user_name=SYSDBA");
IBDatabase1->Params->Add("password=masterkey");
IBDatabase1->Params->Add("lc_ctype=WIN1251");
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("SELECT * FROM TABLE;");
IBQuery1->Open();
}
Ложу этот код в кнопку. Ошибка

Cannot perform operation -- DB is currently open.
больше не отображается, но если есть вывод в DBGrid и я нажимаю на кнопку, то DBGrid чистится, после второго клика отображается новый вывод в DBGrid, а иногда появляется ошибка:

Dynamic SQL Error
SQL Error code = -104
Token unknown - line 2, char 1
SELECT.
, но при этом данные выводятся в DBGrid...
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
22.09.2010, 15:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
    if (IBDatabase1->Connected) IBDatabase1->Connected = false;
    IBDatabase1->Params->Clear();
    IBDatabase1->DatabaseName = ListBox1->Items->Strings[i];
    IBDatabase1->Params->Add("user_name=SYSDBA");
    IBDatabase1->Params->Add("password=masterkey");
    IBDatabase1->Params->Add("lc_ctype=WIN1251");
        IBDatabase1->Connected = true;
    if (IBQuery1->Active) IBQuery1->Close();
    IBQuery1->SQL->Clear();
    IBQuery1->SQL->Add("SELECT * FROM TABLE;");
 
    IBQuery1->Open();
не надо тут else, а то получается если соединение было то при нажатии на кнопку ты просто его закрываешь, в если же неактивно то ты открываешь новое соединение причем параметры соединения не чистишь
1
10 / 10 / 4
Регистрация: 10.09.2010
Сообщений: 197
22.09.2010, 15:40  [ТС]
Цитата Сообщение от Larsus Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
    if (IBDatabase1->Connected) IBDatabase1->Connected = false;
    IBDatabase1->Params->Clear();
    IBDatabase1->DatabaseName = ListBox1->Items->Strings[i];
    IBDatabase1->Params->Add("user_name=SYSDBA");
    IBDatabase1->Params->Add("password=masterkey");
    IBDatabase1->Params->Add("lc_ctype=WIN1251");
        IBDatabase1->Connected = true;
    if (IBQuery1->Active) IBQuery1->Close();
    IBQuery1->SQL->Clear();
    IBQuery1->SQL->Add("SELECT * FROM TABLE;");
 
    IBQuery1->Open();
не надо тут else, а то получается если соединение было то при нажатии на кнопку ты просто его закрываешь, в если же неактивно то ты открываешь новое соединение причем параметры соединения не чистишь
Учел, лучше, но ошибка

C++
1
2
3
4
Dynamic SQL Error
SQL Error code = -104
Token unknown - line 2, char 1
SELECT.
все равно появляется. После наблюдений заметил если вывести данные, а потом снова попытаться вывести их же, то возникает выше указанная ошибка, смею преположить, что дело в кеширование или в запросе, тобишь нужно апдэйт указать чтоли...

Добавлено через 10 минут
Разобрался, оказалось, что IBQuery2 и IBQuery3 я не чистил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.09.2010, 15:40
Помогаю со студенческими работами здесь

Ошибка при работе с DBGrid
Помогите, пожалуйста! Поместила на форму DBGrid, прописываю колонки. При попытке заполнить FieldName выдается ошибка "Неправильная...

Ошибка при работе с потоками
void __fastcall TForm1::FormCreate(TObject *Sender) { haha *Thr = new haha(true); Thr->Priority=tpTimeCritical; Thr->Resume(); } ...

Ошибка в C++ Builder 10 при работе с файлами
ошибка: Unit3.cpp(57): E2094 'operator<<' not implemented in type 'fstream' for arguments of type 'AnsiString' Код: #include...

В чем ошибка при работе с Firebird?
Здравствуйте. В баттоне код: Form1->IBQuery1->SQL->Clear(); Form1->IBQuery1->SQL->Add("SELECT * FROM TABLENAME"); ...

Странная ошибка при работе с Excel
Пытаюсь создать Excel файл и записать в него ячейки но при компиляции программы получаю совершенно не понятную мне ошибку int i; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru