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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как отобразить все записи из базы сразу, а не кэшируя их  (Прочитано 12043 раз)
Rcus
Гость
« Ответ #15 : Февраль 18, 2009, 20:01 »

Цитировать
И второй самый главный вопрос - одним из условий работы программы был принцип одновременной работы с файлом-базой нескольких пользователей одновременно
Мы точно о SQLite говорим?
http://sqlite.org/whentouse.html
Цитировать
A good rule of thumb is that you should avoid using SQLite in situations where the same database will be accessed simultaneously from many computers over a network filesystem.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Февраль 18, 2009, 21:05 »

Всё работало, а вот сейчас при использовании insertRecord не работает. Может посоветуете какое-нибудь решение? Улыбающийся
submintAll()
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
« Ответ #17 : Февраль 18, 2009, 21:55 »

я ж писал:
Цитировать
только не забывать делать submitAll, если политика обновления не автоматическая.

склайт для одновременного доступа не подходит - ещё один плюс в пользу файрбёрда.
о событиях уведомлять не умеет - ещё один плюс в пользу файрбёрда.
итог: тебе нужен Firebird Embedded - как собрать и использовать ищи в соответствующих ветках форума

без уведомлений о событиях можно обойтись периодическим перезапросом данных (опционально парой триггеров в бд и таблиицей изменений для клиентов) - это также уже обсуждалось...
Записан
olegmar
Гость
« Ответ #18 : Февраль 18, 2009, 22:53 »

submitAll()
это всё понятно, я говорил про то, что результат не отображается на других копиях программы.. Но дело не в этом - скажите Firebird Embedd - это драйвер QIBASE? Если - да, то насколько я понимаю мне сильно придётся менять все обращения к базу данных? И возможно ли в нём подключаться одновременно нескольким клиентам к одному файлу?

спасибо большое всем за ответы!

Записан
Rcus
Гость
« Ответ #19 : Февраль 19, 2009, 00:52 »

http://www.ibase.ru/ibfaq.htm
Говорит что Embedded не подходит для многопользовательского доступа. Хм?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #20 : Февраль 19, 2009, 07:39 »

Скюлайт нормально работает с несколькими клиентами, проверено. За несколько месяцев использования пятью клиентами проблем не было. А на счет обновления данных.... Заведи таблицу, где будешь отмечать последнее изменение, и дергай ее периодически из клиентов. Если время обновления больше, чем сохраненное, то обновиться. В принципе можно попробовать через QFileInfo смотреть дату у файла. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
olegmar
Гость
« Ответ #21 : Февраль 19, 2009, 14:30 »

Цитировать
В принципе можно попробовать через QFileInfo смотреть дату у файла.

Не поверите, но так и делаю)

Тоже прочитал на http://www.ibase.ru/ibfaq.htm, что нет возможности одновременнной работы нескольких пользователей, поэтому и решил уточнить.
Записан
ритт
Гость
« Ответ #22 : Февраль 19, 2009, 17:01 »

В принципе можно попробовать через QFileInfo смотреть дату у файла.
можно QFileSystemWatcher заюзать

но для надёжности лучше всё же опрашивать специальную таблицу, а не проверять время изменения файла
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #23 : Февраль 19, 2009, 18:09 »

В принципе можно попробовать через QFileInfo смотреть дату у файла.
можно QFileSystemWatcher заюзать

но для надёжности лучше всё же опрашивать специальную таблицу, а не проверять время изменения файла
С таблицей есть одно но - разрастется код, так как нужно будет при каждом изменении дополнительно изменять данные в этой табличке и заводить транзакцию.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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