Название: Обновление данных на Table или подобном элементе интерфейса Отправлено: admin_007 от Январь 16, 2008, 20:37 Друзья, вот представьте себе обычная форма. На форме допустим QTableView. Есть БД на FireBird (ну может на любом движке)
Вот хочу сделать так, что бы при изменении данных в БД, это изменение отобразилось на элементах интерфейса (QTable). Т.е. что бы это происходило автоматичеки без вмешательства пользователя или иных средств. Допустим подключены несколько компов-клиентов к БД. Один пользователь что то сделал (например удалил запись или изменил значение где то в таблице) И сразу это отразилось у всех клиентов в реальном времени... Есть вариант написать приложение клиент-сервер, ну а без него это можно как то сделать? Спасибо!!! Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: ритт от Январь 16, 2008, 20:42 друг, форму представить себе не могу, ибо в кутэ нет такого термина...
ищи по форуму - много раз поднимался вопрос о вариантах "слежения" за изменениями в бд если "движок" может быть любым, пусть это будет пг Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Sergey B. от Январь 16, 2008, 21:07 В Qt 4.4 будет возможно на PostgreSQL и FireBird.
http://doc.trolltech.com/main-snapshot/qsqldriver.html#notification (http://doc.trolltech.com/main-snapshot/qsqldriver.html#notification) Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: ритт от Январь 16, 2008, 21:41 а я хренею, что у мускуля нет подобной возможности, как у пг, например...
когда-нибудь мне будет очень надо - и сделаю грязный хак мускулю на предмет сигнализации какой-нибудь может, кто-нть уже этим озадачивался? кто-нть знает? Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Tonal от Январь 17, 2008, 08:34 В мускуле всю жисть опрашивали таблицы на предмет последнего изменения.
Ну а в последних вроде UDF-ы и триггеры есть - так что можно ручками реализовать. :-) Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: ритт от Февраль 17, 2008, 18:35 юдф-ы есть давно, триггеры тоже достаточно давно появились (с 5.0.2)
всё-равно нужно какую-то ху*ту мудрить, т.к. нотифи нет и даже в 6-ой серии пока не предполагается...и как в таком случае сообщить клиенту об изменениях? разве что открывать в приложении порт на прослушку и из триггера устанавливать соединение - отправлять какой-нть нотификашен. других мыслей пока нет... Тонал, есть идеи??! только недавно порадовался качественному эмбеду мускуля, и вот опять разочаровываюсь в нём... видимо, пора бросать мускуль и делать эмбед на птице и сервера на пг :( Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Вячеслав от Февраль 17, 2008, 20:14 2 xep А чем тебе птиц в качестве сервера не нравиться ? ;) Летает и не жужжит ;) И evnt'Ы есть ;)
PS Тебе мессага дошла ? Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: ритт от Февраль 18, 2008, 00:02 Вячеслав, мессага дошла - всё жду когда в аську постучишься
от сервера мне нужна исключительно только производительность...если сможешь доказать, что птиц ничуть не хуже того же мускуля, возможно, задумаюсь о переброске сервера... но сейчас этот вопрос меня меньше всего тревожит. на первое место сейчас встала сигнализация на клиентской стороне. не хочется сейчас "между делом" перевязывать всё на птица Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Tonal от Февраль 18, 2008, 09:17 У нас приложения на птице, так что про мускуль не подскажу. :-(
С производительностью опять же по разному - птиц более продвинутый в плане оптимизатра, но он версионник, так что иногда можно налететь с непривычки. Например, select count(*) from table вызовет полный скан таблицы, а в мускуле отработает сразу (порравят в в2.5). С другой стороны, читающие транзакции не мешают пишущьим - поэтому, если читающих много, то версионник - лучший выбор. Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: crocus от Февраль 18, 2008, 11:38 Вопрос не в тему, но все-же, как в птице вывести данные в файл и из файла (типа mysql : load data local infile..)
Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Вячеслав от Февраль 18, 2008, 14:42 Вопрос не в тему, но все-же, как в птице вывести данные в файл и из файла (типа mysql : load data local infile..) external table ?Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Вячеслав от Февраль 18, 2008, 14:45 Вячеслав, мессага дошла - всё жду когда в аську постучишься Млин :( Я про нее последнее время забыл - не до грибов ( Жена ремонт дома затеяла (моими руками :( )) Таки давай через форум\ЛС ....Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Sergeich от Февраль 20, 2008, 02:06 Раз пошла такая пьянка :)
Други, подскажите неразумному, есть у какого-нить из встроенных движков поддержка нотификаций. После размышлений на данную тему понял, что оно в принципе реализуемо. Может кто-то ужо сделал? Название: Re: Обновление данных на Table или подобном элементе интерфейса Отправлено: Tonal от Февраль 20, 2008, 08:40 У птица есть. Я ей давно пользуюсь. :-)
правда работаю с ним не через Qt-ёвый драйвер. Но есои поискать, в этом форуме как-то пробегала реализация поддержки и для Qt-ёвого. А в 4.4 троли обещают встроить. :-) |