标题:请教一个数据库提交的问
作者:clickto
日期:2018-11-27 13:02
内容:
我是使用Qt5.11,mingw版,使用QTableView配合QSqlTableModel来操作数据库。
通过 QSqlRecord record = model->record(1);
record.setValue("field_1","new");
model.setRecord(1,record);
这样的方式可以更新数据库,但是当我想要插入新数据时,通过
QSqlRecord record = model->record();
record.setValue("field_1","new");
model->insertRecord(model->rowCount(),record);
model->submitAll();
这样的代码进行操作,显示submitAll返回成功,但是数据库却没有添加任何记录。
直接用sql语句insert into是可以插入新数据的。
请问各位,有没有遇到过这样的问题,可能的原因是什么?
#1 [clickto 11-27 13:05]
或者通过model的setData也是不行的。只要是通过model就不行,虽然它显示submitAll是成功的。
#2 [clickto 11-27 13:11]
通过model删、改是可以的,就是不能插入。。。
#3 [stlcours 11-27 17:38]
干嘛要使用二道贩子的功能?这样它就可以赚你的中间差价了。所以我直接使用SQL语句,想怎么样就怎么样,调试还方便。
#4 [kaon 11-27 19:41]
试下model->insertRecord(-1,record);
#5 [clickto 11-27 19:56]
关于model的各种接口都试过了,插入位置为-1也试过了,删改查都可以,都是 不能插入新数据。
没有主键冲突。反正就是不能。佷奇怪。应该可以排除代码的原因,submitAll的时候能够看到model的rowCount,而且也返回成功。唯一的解释可能是数据库的问题。
可是数据库没有什么特别的约束啊。
sql语句是可以的,但是,字段太多了啊,而且数据类型还不一样。。。
我就奇怪为什么不能新增数据。