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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обновление данных на Table или подобном элементе интерфейса  (Прочитано 7987 раз)
admin_007
Гость
« : Январь 16, 2008, 20:37 »

Друзья, вот представьте себе обычная форма. На форме допустим QTableView. Есть БД на FireBird (ну может на любом движке)
Вот хочу сделать так, что бы при изменении данных в БД, это изменение отобразилось на элементах интерфейса (QTable).
Т.е. что бы это происходило автоматичеки без вмешательства пользователя или иных средств.

Допустим подключены несколько компов-клиентов к БД. Один пользователь что то сделал (например удалил запись или изменил значение где то в таблице) И сразу это отразилось у всех клиентов в реальном времени...
Есть вариант написать приложение клиент-сервер, ну а без него это можно как то сделать?

Спасибо!!!
Записан
ритт
Гость
« Ответ #1 : Январь 16, 2008, 20:42 »

друг, форму представить себе не могу, ибо в кутэ нет такого термина...

ищи по форуму - много раз поднимался вопрос о вариантах "слежения" за изменениями в бд
если "движок" может быть любым, пусть это будет пг
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #2 : Январь 16, 2008, 21:07 »

В Qt 4.4 будет возможно на PostgreSQL и FireBird.
http://doc.trolltech.com/main-snapshot/qsqldriver.html#notification
Записан
ритт
Гость
« Ответ #3 : Январь 16, 2008, 21:41 »

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

может, кто-нть уже этим озадачивался? кто-нть знает?
Записан
Tonal
Гость
« Ответ #4 : Январь 17, 2008, 08:34 »

В мускуле всю жисть опрашивали таблицы на предмет последнего изменения.
Ну а в последних вроде UDF-ы и триггеры есть - так что можно ручками реализовать. :-)
Записан
ритт
Гость
« Ответ #5 : Февраль 17, 2008, 18:35 »

юдф-ы есть давно, триггеры тоже достаточно давно появились (с 5.0.2)
всё-равно нужно какую-то ху*ту мудрить, т.к. нотифи нет и даже в 6-ой серии пока не предполагается...и как в таком случае сообщить клиенту об изменениях? разве что открывать в приложении порт на прослушку и из триггера устанавливать соединение - отправлять какой-нть нотификашен. других мыслей пока нет...
Тонал, есть идеи??!

только недавно порадовался качественному эмбеду мускуля, и вот опять разочаровываюсь в нём...
видимо, пора бросать мускуль и делать эмбед на птице и сервера на пг Грустный
Записан
Вячеслав
Гость
« Ответ #6 : Февраль 17, 2008, 20:14 »

2 xep А чем тебе птиц в качестве сервера не нравиться ? Подмигивающий Летает и не жужжит Подмигивающий И evnt'Ы есть Подмигивающий

PS Тебе мессага дошла ?
Записан
ритт
Гость
« Ответ #7 : Февраль 18, 2008, 00:02 »

Вячеслав, мессага дошла - всё жду когда в аську постучишься

от сервера мне нужна исключительно только производительность...если сможешь доказать, что птиц ничуть не хуже того же мускуля, возможно, задумаюсь о переброске сервера...
но сейчас этот вопрос меня меньше всего тревожит. на первое место сейчас встала сигнализация на клиентской стороне. не хочется сейчас "между делом" перевязывать всё на птица
Записан
Tonal
Гость
« Ответ #8 : Февраль 18, 2008, 09:17 »

У нас приложения на птице, так что про мускуль не подскажу. :-(
С производительностью опять же по разному - птиц более продвинутый в плане оптимизатра, но он версионник, так что иногда можно налететь с непривычки.
Например, select count(*) from table вызовет полный скан таблицы, а в мускуле отработает сразу (порравят в в2.5).
С другой стороны, читающие транзакции не мешают пишущьим - поэтому, если читающих много, то версионник - лучший выбор.
Записан
crocus
Гость
« Ответ #9 : Февраль 18, 2008, 11:38 »

Вопрос не в тему, но все-же, как в птице вывести данные в файл и из файла (типа mysql : load data local infile..)
Записан
Вячеслав
Гость
« Ответ #10 : Февраль 18, 2008, 14:42 »

Вопрос не в тему, но все-же, как в птице вывести данные в файл и из файла (типа mysql : load data local infile..)
external table ?
Записан
Вячеслав
Гость
« Ответ #11 : Февраль 18, 2008, 14:45 »

Вячеслав, мессага дошла - всё жду когда в аську постучишься
Млин Грустный Я про нее последнее время забыл - не до грибов ( Жена ремонт дома затеяла (моими руками Грустный )) Таки давай через форум\ЛС ....
Записан
Sergeich
Гость
« Ответ #12 : Февраль 20, 2008, 02:06 »

Раз пошла такая пьянка Улыбающийся
Други, подскажите неразумному, есть у какого-нить из встроенных движков поддержка нотификаций. После размышлений на данную тему понял, что оно в принципе реализуемо. Может кто-то ужо сделал?
Записан
Tonal
Гость
« Ответ #13 : Февраль 20, 2008, 08:40 »

У птица есть. Я ей давно пользуюсь. :-)
правда работаю с ним не через Qt-ёвый драйвер. Но есои поискать, в этом форуме как-то пробегала реализация поддержки и для Qt-ёвого. А в 4.4 троли обещают встроить. :-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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