QtSql数据库的三种创建方式

QtSQL数据库对象的创建,可以以变量和指针两种方式创建。 目前从案例看,用变量的例子比较多,但实际应用的时候…

QtSQL数据库对象的创建,可以以变量和指针两种方式创建。

目前从案例看,用变量的例子比较多,但实际应用的时候,考虑到子类化等问题,还是指针类用的比较多,这里有一点写法上的小技巧,否则指针定义后可能无法打开数据库。

先看一下变量定义的方式:

用QMainWindow来创建工程,之后上代码:

这种定义方式,是QSqlDatabase和QSqlQuery都用变量表示,这是大家都使用的方式。这里要注意一点,close之后,如果使用remobedatabase,就会有一条警告提示,说什么db还在使用中。

这时候应该先删除db对象,在remove database。这里直接就没有使用remobe database,所以没报错。

为了解决这个报错,可以用指针来做:

这里因为是指针,所以可以用delete先把db删除,然后再remobe database,我不清楚变量是否也可以这样做。因此我倾向于使用指针来代替变量。

还有个小插曲,就是定义指针时,一定要在构造函数里写addDatabase,否则就无法正常运行。

此外,还考虑QSqlQuery是否也能搞成指针。下面看代码:

这把query也改成指针,运行也是正常。

注意:对于SQL语句而言,如果你已经有了这个row,那么就不会更新。除非把db文件删除。

下面使用QSqlQueryModel和QTableView来实现数据库表的显示:只需要增加:

我的理解是,在做这个操作时,数据库是没有close的,也诶有remove,否则就会显示:

这是close之后,没有remve之前的显示,如果把close和remove都放到析构函数中,则正常显示:

明天考虑下怎么用QSqlTableWidget,看是不是比这几个都方便。

实现的源码下载:

https://download.csdn.net/download/zjjsd195/85299757icon-default.png?t=M3K6https://download.csdn.net/download/zjjsd195/85299757

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/7335.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部