QSqlDatabase
来源:互联网 发布:招商银行 知乎 编辑:程序博客网 时间:2024/05/12 14:14
QSqlDatabase类提供了一个链接数据库的类。
QSqlDatabase类提供了通过连接来使用使用库的接口,QSqlDatabase的一个实例就代表了对数据库的连接,这个提供使用数据库的连接是通过 supported database driver来实现的, 这个supported database drivers是由 QSqlDriver来实现的。当然,你也可以通过子类化自己的数据库驱动(database driver). See How to Write Your Own Database Driver.
创建一个连接connection(也就是一个QSqlDatabase的一个实例)通过调用 addDatabase(), 你在这个函数种可以指定驱动或者驱动的类型(the driver or type of driver)来使用(也就是你想使用哪种类型的数据库)和一个连接的名字。一个数据库的连接是通过它的名字被知晓的,而不是它所连接的数据库的名字。你可以对一个数据库有多个不同的连接。QSqlDatabase 也可以支持默认连接的概念,也就是一个无名的连接。创造一个默认的连接,也就是在调用addDatabase()时不给这个函数传递连接名字的参数。
因此,当这个连接拥有连接名称时,你可以通过连接名字来调用任意的静态的成员函数,如果没有连接名称时,那这个连接就是一个假设。
一旦这个QSqlDatabase的对象被创建了,设置这个连接的参数通过:
setDatabaseName()
setUserName()
setPassword()
setHostName()
setPort()
setConnectOptions()
然后就可以调用 open()来激活这个数据库的物理连接。这个连接不是可用的直到你打开这个连接。
QSqlDatabase是一个有价值的类。任意的一个QSqlDatabase的一个实例的数据库连接产生了变化,那这个变化也会影响QSqlDatabase的其他的具有相同连接的实例。使用
cloneDatabase() 来创建一个独立的已经存在了的数据库的连接。
如果你创建了多个数据库的连接,为每一个连接指定一个唯一的名字,当你需要调用addDatabase()。使用数据库连接的名字来获取某个指定的连接。使用removeDatabase() 并传递一个连接的名字来移除一个连接。QSqlDatabase来输出一个警告,如果你试图移除一个被其他的QSqlDatabase对象引用的连接。使用 contains()来看给定的连接名是否已经存在在所有连接的列表种。
一旦一个连接建立起来,你可以是调用 tables() 来获取这个数据库中的所有的表的列表,调用 primaryIndex()来获取一个表的主键 primary index , 也可以通过调用 record() 来获取meta-information关于列表的fields(也就是field名字)。
如果一个 drivers支持交易 transactions, 使用transaction()来启动一个transaction, 还有 commit(), rollback() 来完成他。使用hasFeature()来询问是否这个driver支持这些交易。
Note: 当使用 transactions, 你需要启动这个transaction 在你创建你的 query之前。
如果一个错误产生了, lastError() 将会返回关于这个错误的信息。
获取这些可以接近的 SQL drivers通过 drivers(), 检查一个特定的driver是否存在通过调用 isDriverAvailable(). 如果你创建了你自定义的一个driver, 你必须注册它,通过registerSqlDriver().
举些例子。
- QSqlDatabase
- QSqlDatabase
- QSqlDatabase类
- QSqlDatabase 用法
- QSqlDatabase类
- QSqlDatabase数据库
- QSqlDatabase类详细介绍
- QSqlDatabase类详细介绍
- QSqlDatabase类学习笔记
- 关于qt QSqlDatabase
- QSqlDatabase类笔记
- QSqlDatabase transaction()事物提交
- QSqlDatabase类学习笔记
- QSqlDatabase 简单入门介绍
- QSqlDatabase操作数据库sqlite3
- QT——QSqlDatabase
- QT数据库连接必备QSqlDatabase
- QSqlDatabase 连接 cloneDatabase()
- HashMap源码解析
- apache commons io 下载(2016-04-21更新)
- Android中SDcard文件操作相关方法
- AngularJS系列——ui-router
- 大家来猜猜这是哪首古诗词?
- QSqlDatabase
- 欢迎使用CSDN-markdown编辑器
- iOS应用程序启动时所有方法的调用顺序
- 修改Tomcat端口号
- Phpstudy 开启GZIP 配置
- MySQL sql-mode
- Git 基础(九)—— Failed to push some refs to git
- 观察者模式
- win7调整游戏全屏