crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Периодическое обновление данных в таблице. Как лучше реализовать?
gmurik2
  опции профиля:
сообщение 2.6.2010, 10:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 21.5.2009
Пользователь №: 764

Спасибо сказали: 0 раз(а)




Репутация:   0  


День добрый! Пишу многопользовательское приложение базы данных, в приложении есть таблица, в которой выводится результат запроса. Эта таблица должна периодически обновляться, чтобы отобразить изменения сделанные другими пользователями. Как widget'ом лучше воспользоваться QTableView или QTableWedget?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 2.6.2010, 11:09
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Обновление должно происходить после какого-то события или же через определенные моменты времени?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gmurik2
  опции профиля:
сообщение 2.6.2010, 11:59
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 21.5.2009
Пользователь №: 764

Спасибо сказали: 0 раз(а)




Репутация:   0  


Через определенные моменты времени, например раз в пять секунд
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 2.6.2010, 12:54
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Ну тут без разницы, каким виджетом. Ты вообще можешь сделать свою модель, с автообновлением. А так смотри QTimer, QTimer::singleShot
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gmurik2
  опции профиля:
сообщение 2.6.2010, 13:12
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 21.5.2009
Пользователь №: 764

Спасибо сказали: 0 раз(а)




Репутация:   0  


Если использовать QTableView, то при обновление не происходит незаметно, пропадает выделение (хотя это устранимо), изменяется ширина столбцов и еще много неприятных эффектов, QTableWidget - надо почти все писать самому....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 2.6.2010, 18:29
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Ну так ты же можешь все это запомнить, хранить где-то, если это критично.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 3.6.2010, 0:45
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Цитата(Andrewshkovskii @ 2.6.2010, 19:29) *
Ну так ты же можешь все это запомнить, хранить где-то, если это критично.

Угу, например кое-что уже есть:
QByteArray QHeaderView::saveState () const
bool QHeaderView::restoreState ( const QByteArray & state )


Насчет восстановления выделения - спорный вопрос. В общем случае, нет гарантий, что данная запись еще не удалена из БД.
Да и вообще, честно говоря, вся тема достаточна спорна. Конечно, я не знаю для какой предметной области разрабатывается данное ПО, но в большинстве случаев такая актуальность данных не нужна, только лишний трафик гонять. Можно вполне обойтись и кнопочкой "Обновить".
Кстати, в некоторых СУБД существуют нотификационные сервисы, позволяющие посылать уведомления при возникновении каких-либо событий в базе данных.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 3.6.2010, 1:12
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Цитата
Кстати, в некоторых СУБД существуют нотификационные сервисы, позволяющие посылать уведомления при возникновении каких-либо событий в базе данных.

Вот мне про это интересно, в каких СУБД реализованно? (кроме оракла, конечно :) )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.6.2010, 11:34
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 3.6.2010, 5:12) *
Вот мне про это интересно, в каких СУБД реализованно?
В Firebird'е есть и штатный драйвер Qt поддерживает. Вроде в MySql тоже есть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 3.6.2010, 16:10
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


PostgreSQL (тоже поддерживается Qt), в Microsoft SQL Serve, по-моему, еще есть. Остальные хз.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 2:24