Qt:如何使用sqlite数据库修改2个表中的数据记录

时间:2018-03-16 06:01:48

标签: c++ database qt sqlite

问题:您好,我在QT中使用sqlite3数据库。我的架构定义如下:

table users:        table wishlist
------------        --------------
id                  id
balance, int        balance, int
savings, int        price
                    uid (users id)

任务是让用户可以在他的余额和储蓄字段之间转账,也可以将钱汇到他的心愿单项目。

例如:用户打开对话窗口,选择货币来源,选择货币扣除,写入金额和提交。提交对话框窗口后,主窗口中的余额将使用新的正确值进行更新。

我的想法

在我的应用中,我应该可以从(src -> dest)

转帐
(users.balance -> users.savings)
(users.savings-> users.balance)
(users.balance -> wishlist.balance)
(users.savings -> wishlist.balance)
(wishlist.balance -> users.savings)
(wishlist.balance -> users.balance)

用户在wishlist中定义的项目与用户拥有许多愿望清单项目的关系。

我的想法是创建一个包含2列和1个字段的金额的对话框窗口。 2列中的数据应彼此相同。用户点击第一列选择货币来源,第二列选择目的地。

问题: 我应该使用什么(数据和视图模型)来填充来自不同表的列中的数据,并且可以同时修改同一个表(用户)中的余额值或单独(用户和心愿单)并保存到数据库中?是否可以从多个数据源填充视图,以后能够正确保存修改后的值?它甚至是解决这类问题的正确方法,还是我错过了解决这个问题的更好方法?

1 个答案:

答案 0 :(得分:0)

我认为你需要的是:

QSqlQueryModel model;
model.setQuery("select users.balance, wishlist.balance ... from users, wishlist ... where .... ");
if (model.lastError().isValid())
    qDebug() << model.lastError();

ui->tableView->setModel(model)
//QTableView::setModel

有用吗?