QT数据库连接必备QSqlDatabase
来源:互联网 发布:淘宝店铺装修尺寸 编辑:程序博客网 时间:2024/05/20 06:10
转载自:http://blog.csdn.net/u011512437/article/details/43927403
每个应用都需要或多或少的保存一些数据,当不想用文件保存数据时,最好的选择恐怕就是数据库了。数据库拥有管理数据方便,数据可读性高等优点。那么在QT中又怎样使应用与数据库关联呢?!下面来介绍一个QSqlDatabase类(不是操作数据库,只连接数据库,操作数据请看数据库操作):
QSqlDatabase
创建连接
QSqlDatabase QSqlDatabase::addDatabase(const QString & type, const QString & connectionName = QLatin1String( defaultConnection )) [static]
同一个database可以被创建多个连接。
目前支持的驱动类型(Qt5.3):
设置连接参数
void QSqlDatabase::setDatabaseName(const QString & name)void QSqlDatabase::setUserName(const QString & name)void QSqlDatabase::setPassword(const QString & password)void QSqlDatabase::setHostName(const QString & host)void QSqlDatabase::setPort(int port)void QSqlDatabase::setConnectOptions(const QString & options = QString())
以上不一定全部被使用。例:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");db.setHostName("acidalia");db.setDatabaseName("customdb");db.setUserName("mojito");db.setPassword("J0a1m8");bool ok = db.open();
打开数据库连接
bool QSqlDatabase::open()
关闭连接
void QSqlDatabase::close()
注意:调用该函数将使所有正在执行操作的QSqlQuery操作失效。且该函数会影响其副本。
获取连接名
//获取当前对象连接名QString QSqlDatabase::connectionName() const//获取所有连接名QStringList QSqlDatabase::connectionNames() [static]
获取连接对象
QSqlDatabase QSqlDatabase::database(const QString & connectionName = QLatin1String( defaultConnection ), bool open = true) [static]
注意:当open = true时,未打开的连接将会被打开。当connectionName不存在时,将返回无效连接。
复制连接对象
QSqlDatabase QSqlDatabase::cloneDatabase(const QSqlDatabase & other, const QString & connectionName) [static]
删除连接对象
void QSqlDatabase::removeDatabase(const QString & connectionName) [static]
删除一个被其他QSqlDatabase对象引用的连接将会发出警告。
检测连接是否存在
bool QSqlDatabase::contains(const QString & connectionName = QLatin1String( defaultConnection )) [static]
获取数据库表
QStringList QSqlDatabase::tables(QSql::TableType type = QSql::Tables) const
注意:需要在已连接的情况下使用。
判断连接有效性
bool QSqlDatabase::isValid() const
例:
QSqlDatabase db;qDebug() << db.isValid(); // Returns falsedb = QSqlDatabase::database("sales");qDebug() << db.isValid(); // Returns \c true if "sales" connection existsQSqlDatabase::removeDatabase("sales");qDebug() << db.isValid(); // Returns false
获取数据表主索引
QSqlIndex QSqlDatabase::primaryIndex(const QString & tablename) const
如果不存在主索引,则返回空QSqlIndex。
获取字段元信息
QSqlRecord QSqlDatabase::record(const QString & tablename) const
当tablename不存在时,返回空QSqlRecord。
开启事务处理
QStringList QSqlDatabase::tables(QSql::TableType type = QSql::Tables) const
注意:需要数据库的支持。
提交事务
bool QSqlDatabase::commit()
注意:需要先开启事务处理。
回滚事务
bool QSqlDatabase::rollback()
注意:需要先开启事务处理。
判断事务可用性
bool QSqlDriver::hasFeature(DriverFeature feature) const [pure virtual]
获取错误信息
QSqlError QSqlDatabase::lastError() const
获取可用的数据库驱动名列表
QStringList QSqlDatabase::drivers() [static]
驱动名可用性
bool QSqlDatabase::isDriverAvailable(const QString & name) [static]
注册用户驱动
void QSqlDatabase::registerSqlDriver(const QString & name, QSqlDriverCreatorBase * creator) [static]
例:
QSqlDatabase::registerSqlDriver("MYDRIVER",new QSqlDriverCreator<MyDatabaseDriver>);QSqlDatabase db = QSqlDatabase::addDatabase("MYDRIVER");
0 0
- QT数据库连接必备QSqlDatabase
- QT数据库连接必备QSqlDatabase
- Qt QSqlDataBase数据库连接线程池
- 关于qt QSqlDatabase
- QT——QSqlDatabase
- Qt 之 QSqlDatabase Class
- qt数据库之 QSqlDatabase类
- Qt QSqlDatabase操作数据库概述
- QSqlDatabase类实现了数据库连接的操作
- QSqlDatabase
- QSqlDatabase
- [翻译]Qt, QSqlDatabase类详细介绍 【转载】
- QT连接MySQL错误解决QSqlDatabase:…
- Qt解析QSqlDatabase、QSqlQuery类操作数据库
- Qt 用QSqlDatabase 连接Firebird数据库
- QT 009 QSqlDatabase 数据库类的使用
- qt数据库连接
- Qt必备
- jquery函数
- 求一个数组的最大公约数
- 监听
- 常用正则表达式
- 504. Base 7
- QT数据库连接必备QSqlDatabase
- Camtasia Studio 9.0.3 中文汉化版安装教程(屏幕录像软件)
- 第十一章:DOM扩展
- Spark ConfigEntry
- 欢迎使用CSDN-markdown编辑器
- iOS项目代码行数统计
- 【linux is not Unix】windows部署——softether服务端安装
- 天线设计(3)
- thinkphp 如何调用conmon.php 的函数,使代码更高效