Вы привели кусок кода процедуры submitAll() которая вызывается нами вручную по нажатию кнопки "подтвердить изменения" в справочнике и еще раз повторюсь она не вызывается после изменения одной записи!!! Сколько можно об этом говорить - а если бы вызывалась то действительно переоткрывался набор и менялась активная зщапись - мне что видео записать в котором я бегаю по строкам и столбцам - меняю их содержимое и при этом ничего не переоткрывается?
У нас получается разговор слепого с глухим. Я верю, что это возможно так, как вы описываете. Я говорю, что ваш пример абсолютно не корректен. В много пользовательской БД когда МНОГО пользователей исправлять НЕСКОЛЬКО записей справочника категорически неюзабельно. В случаях когда я изменил 4 записи из 10000000 он ПЕРЕФОРМИРУЕТ запрос. Если вы делает тупой select * from table, то это не страшно , но если время выполнение запроса критично и запрос вида
select field1,sum(fied2) from (select f1,sum(f2) from ....)
inner join ....
where exists (select f1 from ...)
group by ...
having count(.....)>(select ....)
-это КАТАСТРОФА.
можно сделатьдополнительное окно для редактирования, то что вы предлагали, но делать это , например, для редактирования всего ОДНОГО поля бессмысленно.
редактируемый SQL набор это QSqlQuery
набор который еще и отображается QSqlTableModel - ограничение что работает с 1 таблицей, но выговорите о других фреймворках - так приведите примеры - я работал много с БД только с Делфи - там тоже стандартный компонент называется DBTable или как то так не помню уже и тоже работает с 1 таблицей, и вбитьт в него тело SQL запроса нельзя. Кроме того там стандартом являются компоненты BDE которые имеют проблемы работы с памятью - программа просто периодически может вылетать.
Хотите конкретику-пожалуйста. В делфях есть СТАНДАРТНЫЙ набор классов с БД (БДЕ -это устаревшее неудивительно, что у вас не получалось) TQuery и TTable, для ADO TADOQuery,TADOTable- эти классы позволяли получать и ИЗМЕНЯТЬ набор данных.TTable соответственно также как QSqlTableModel работал только с одной таблицей. но это уже оффтоп.
- если так то примеры приведите, без подтверждения это ваши догадки или мнение а не факты
Пожалуйста. Делфи (уже набившие оскомину) -куча классов для работы с разными БД (сторонние), Java (JDBC-драйвера), C++. Надеюсь хватит?
ЗЫ. Ну и на последок. Я терпеливо отвечал на ваши посты, но вы к сожалению оказать помощь (хотя я допускаю что это в ваших силах) не захотели. Да я еще только изучаю qt, но я не чураюсь помогать. Я больше не буду отвечать на ваши комментарии, они не несут конструктива, но все равно спасибо за пару предложений, которые действительно оказались полезными.