Russian Qt Forum
Сентябрь 30, 2024, 20:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли получить информацию о количестве активных соединений с БД  (Прочитано 7299 раз)
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« : Май 04, 2009, 21:28 »

Драйвер IBASE
Требуется получить число активных соединений у БД - для предотвращения обновления БД - если подключены другие пользователи... Предполагаю что в Qt нет средств для такой проверки - тогда какр решать?
Записан
Rcus
Гость
« Ответ #1 : Май 04, 2009, 21:57 »

А субд Interbase или все-таки Firebird? у FB 2.1 есть специальная служебная таблица для этого, а так есть services api и доступ к нативному дескриптору подключения в QSqlDriver
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #2 : Май 04, 2009, 22:25 »

Firebird 2.0 - ODS 11 - могу конечно перейти и на 2.1 - просто в репозитории ubuntu его не бьло на момент когда БД понадобилось использовать...(как называется служебная таблица - этот вариант вполне подойдет --- MON$ATTACHMENTS ?? )
Появился еще вопрос ведь нельзя создать Базу средствами Qt (в ситуации обновления БД с нуля)? Прийдется иметь пустую болванку и на нее накатывать скрипт?
« Последнее редактирование: Май 05, 2009, 00:33 от break » Записан
ритт
Гость
« Ответ #3 : Май 05, 2009, 00:27 »

create table отменили?
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #4 : Май 05, 2009, 00:42 »

create database? (просто не уверен что будет работать)

Да и собственно с чего бы этому сработать - я могу выполнить запрос через SqlQuery - которое будет работать только при установленном соединении с БД...
« Последнее редактирование: Май 05, 2009, 01:06 от break » Записан
ритт
Гость
« Ответ #5 : Май 05, 2009, 05:22 »

хз, под мускулем вроде сработает...

а почему не получится соединиться? птиц встроенный?
/* не знаю позволяет ли суперсервер соединяться без указания базы - я не знаток пернатых */
« Последнее редактирование: Май 05, 2009, 05:24 от Константин » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Май 05, 2009, 06:34 »

>>create database? (просто не уверен что будет работать)
А ты проверь, запусти демку demo/sqlbrowser, соеденись с БД и в поле запроса введи:
Код:
CREATE TABLE RRRTABLE(
  F_ID Integer NOT NULL,
  F_EN Varchar(100),
  F_RU Varchar(100)
);
у меня даже через драйвер QODBC работает
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Май 05, 2009, 06:38 »

а-а-а, пардон, создание БД-то так не прокатит.

break, тут вариантов не густо получается:
1) Использовать библиотеку IBPP
2) Использовать драйвер qtfirebirdibppsqldriver (на основе IBPP), который тут на форуме обсуждался, если конечно он такое позволяет.
3) тоскать с собой пустую БД
« Последнее редактирование: Май 05, 2009, 06:46 от lit-uriy » Записан

Юра.
Tonal
Гость
« Ответ #8 : Май 05, 2009, 07:12 »

Таскать пустую вполне удобно, я так делал, но не прокатит для многопользовательского варианта - доступа к серверу может просто не быть.

CREATE TABLE должно прокатывать - что ему мешает?

Создавать базу похоже через сервис-апи.

Для эксклюзивной работы с базой (изменения структур, например) есть специальный режим shutdown-а. Он выставляется либо утилитой gfix, либо через сервис-апи.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #9 : Май 05, 2009, 11:10 »

Пока остановлюсь на таскание с собой пустой базы (GBAK с минимумом метаданных), тем  более что в текущей задаче пользователю редко прийдется создавать БД. И накатывание на нее полного скрипта обновления (до последней версии) в случае восстановления из этой болванки. Там вообще то уже сделал автоматом чтобы программа проверяла версию БД и Программы и с нужного места накатывала скрипт - другие варианты не хочется трогать т.к. хочу остаться независимым от платформы - программа работает в Linux и Windows.
Все спасибо - буду смотреть хитрый Qt Драйвер.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #10 : Май 24, 2009, 01:37 »

Все решил с переходом на FB2.1 - там действительно есть таблица RDB$ATTACHMENTS содержащая инфу о текущих соединениях с этой БД
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.18 секунд. Запросов: 23.