Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QSqlRelationalTableModel обновление данных измененных сторонними программами
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
maint
есть модель
model_pass = new QSqlRelationalTableModel;
model_pass->setEditStrategy(QSqlTableModel::OnManualSubmit);
model_pass->setRelation(2, QSqlRelation("resname", "nresname", "name"));
tbl->setItemDelegate(new QSqlRelationalDelegate(tbl);

tbl - QTableView
Но сторонние программы могут изменить таблицу resname. Кто подскажет, как обновить данные. Если бы было QSqlQueryModel, все понятно, выполнил заново запрос и успокоился . А тут каким образом, ума не приложу.
balbes
QSqlTableModel::select ()
ornelius
Если нужно получить сигнал в момент, когда базу данных изменило какое-то другое приложение, то просто Qt тут не обойтись.
Некоторые базы дынных (Postgre, Oracle) поддерживают NOTIFY/LISTEN. Нужно настроить его в базе, а потом уже из Qt пытаться поймать с помощью QSqlDriver::subscribeToNotification().
Другой вариант -- периодически делать SELECT по таблице, которая могла измениться.
RazrFalcon
Делал такое через тригер NOTIFY в firebird.
Алексей1153
что-то не припомню в птице такой триггер. Это в какой версии появилось?
RazrFalcon
Эм, рукописный.
CREATE TRIGGER USERS_N FOR "USERS" AFTER UPDATE OR INSERT OR DELETE AS BEGIN POST_EVENT 'USERS_NOTIFY'; END
Алексей1153
понятно ))
Litkevich Yuriy
вроде родной драйвер FB в Qt не работал с уведомлениями, на прог.орге один товарищ выкладывал свой драйвер.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.