QSqlDatabase 连接 cloneDatabase()
来源:互联网 发布:中信国安 大数据 编辑:程序博客网 时间:2024/05/18 02:10
Qt中的QSqlDatabase类表示一个数据库的连接。
这里会创建两个数据库连接,一个名为“YourName”, 另一个没有指定名称,称之为默认连接(Default Connection)[注意:默认数据库连接的名称不一定是空的,可以通过database().connectionName()来得到默认数据库连接的名称]。在创建数据库连接时发现已经有相同名称的连接存在,原来的连接会删除并重新创建一个新连接。
数据库连接的创建通过静态方法addDatabase来实现,在创建时可以给数据库连接指定一个名称(ConnectionName),如果不指定名称也可以,会创建一个默认连接。如:
- QSqlDatabase a = QSqlDatabase::addDatabase("QMYSQL", "YourName");
- QSqlDatabase b = QSqlDatabase::addDatabase("QMYSQL");
这里会创建两个数据库连接,一个名为“YourName”, 另一个没有指定名称,称之为默认连接(Default Connection)[注意:默认数据库连接的名称不一定是空的,可以通过database().connectionName()来得到默认数据库连接的名称]。在创建数据库连接时发现已经有相同名称的连接存在,原来的连接会删除并重新创建一个新连接。
数据库连接创建后,通过一些setXXX方法给此连接定义主机名,数据库名,用户名,密码等属性,然后执行open函数创建实际的物理连接,在没有执行open之前是无法执行查询操作的。
Qt中的数据库以连接名来区分的,通过database方法可以获得在前面已经创建的连接,而相同名称的连接实际是同一个连接,如:
- QSqlDatabase c = QSqlDatabase::database("YourName");
- QSqlDatabase d = QSqlDatabase::database("YourName");
- QSqlDatabase e = QSqlDatabase::database();
- QSqlDatabase f = QSqlDatabase::database("UnCreated");
这里的c和d都和前面的a一样,指向的是同一个连接,当对象d的参数改变后(如调用setUserName),c和a的属性会同时变化。而调用database方法如果忽略连接名时, 则会返回已创建的默认连接,就是说e和b时一样的连接。当调用QSqlDatabase::database时此连接并不存在(没有在调用前首先创建),那么返回的是一个无效连接(如f)。
QSqlDatabase::cloneDatabase()提供了复制数据库连接的方法,它返回与源对象不同的一个新的连接,但他们指向的物理数据库仍然是相同的。注意:返回的新连接必须先执行open操作才可使用。这也说明了Qt中允许多个QSqlDatabase连接到同一个数据库。
contains方法可以查询是否已经建立了相同名称的连接。
0 0
- QSqlDatabase 连接 cloneDatabase()
- cloneDatabase()
- QSqlDatabase
- QSqlDatabase
- fedora9下使用QT连接数据库(QSqlDatabase: QODBC driver not loaded)
- ubuntu下 QT 连接各种数据库报错解决(QSqlDatabase: * driver not loaded )
- ubuntu下QT连接各种数据库报错解决(QSqlDatabase: * driver not loaded)
- ubuntu上 QT 连接各种数据库报错解决(QSqlDatabase: * driver not loaded )
- ubuntu上 QT 连接各种数据库报错解决(QSqlDatabase: * driver not loaded )
- QT连接MySQL错误解决QSqlDatabase:…
- QtCreator5.3 连接SQLServer2008,QSqlDatabase,QSqlError,QSqlQuery
- Qt 用QSqlDatabase 连接Firebird数据库
- Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded,QSqlDatabase: available drivers: QSQLITE QMYSQL
- qt数据库多线程问题的解决(QSqlDatabase 同一个连接只能在创建它的线程中使用)
- Qt连接MySQL出现QSqlDatabase: QMYSQL driver not loaded
- Qt连接MySQL出现QSqlDatabase: QMYSQL driver not loaded
- Qt连接MySQL出现QSqlDatabase: QMYSQL driver not loaded
- Qt5 QSqlDataBase很好的错误说明 关于连接
- ActivityManager: Warning: Activity not started, its current task has been brought to the front 的的问题
- 判断两个apk的签名一致
- swift 多线程实现
- 大三了,剩下的时间如何规划
- 绣花机花样文件总结
- QSqlDatabase 连接 cloneDatabase()
- java在windows和linux系统中通用的路径符号"//"
- jdk安装,配置
- 过滤器和拦截器的区别
- Angularjs+ionic 学习(一):Angularjs常用指令
- ios App 让自己的应用在其他应用打开列表显示
- 一行或多行文本超出区域用省略号表示
- 埃及分数题解[迭代加深搜索]
- 给一个10进制数,如何输出2进制数中1的个数?