Qt SQL模块之QSqlDatabase类

QSqlDatabase类处理与数据库的连接,要使用这个类,头文件需要导入QSqlDatabase库:

#include <QSqlDatabase>

在qmake.pro文件中加入SQL数据库支持:

QT += sql

这个类提供了以下公共方法:

  • QSqlDatabase(const QSqlDatabase &other)
    构造函数,创建other的副本
  • QSqlDatabase()
    构造函数,创建一个空的、无效的QSqlDatabase对象,请使用addDatabase(),removeDatabase()和Database()获取有效的QSqlDatabase对象。
  • QSqlDatabase & operator=(const QSqlDatabase &other)
    等号运算符重载
  • ~QSqlDatabase()
    析构函数,销毁对象并释放所有分配的资源,注意:当最后一个连接被销毁时,析构函数隐式调用close()来释放数据库连接
  • void close()
    关闭数据库连接,释放所有获取的资源,并使与数据库一起使用的任何现有的QSqlQuery对象无效,这也将影响该QSqlDatabase对象的副本
  • bool commit()
    如果驱动程序支持事务,并且transaction() 已启动,则向数据库提交事务。如果操作成功,则返回true,否则返回false
    注意:对于某些数据库,如果有使用数据库进行选择的活动查询,提交将失败并返回false,在提交之前,使查询处于非活动状态
    调用lastError()获取有关错误的信息。
  • QString connectOptions() const
    返回用于此连接的连接选项字符串,字符串可能为空
  • QString connectionName() const
    返回连接名称,该名称可能为空
    注意:连接名不是数据库名
  • QString databaseName() const
    返回连接的数据库名称,该名称可能为空
    注意:数据库名不是连接名。
  • QSqlDriver * driver() const
    返回用于访问数据库连接的数据库驱动程序
  • QString driverName() const
    返回连接的驱动程序名称
  • QSqlQuery exec(const QString &query = QString()) const
    在数据库上执行一条SQL语句,并返回一个QSqlQuery对象,使用lastError()检索错误信息,如果查询为空,将返回一个空的无效查询,并且lastError()不受影响
  • QString hostName() const
    返回连接的主机名;它可能是空的
  • bool isOpen() const
    如果数据库连接当前打开,则返回true,否则返回false
  • bool isOpenError() const
    如果打开数据库连接时出错,则返回true,否则返回false,可以使用lastError()函数检索错误信息
  • bool isValid() const
    如果QSqlDatabase是有效的驱动程序,则返回true
    示例:
QSqlDatabase db;
qDebug() << db.isValid();    // Returns false

db = QSqlDatabase::database("sales");
qDebug() << db.isValid();    // Returns true if "sales" connection exists

QSqlDatabase::removeDatabase("sales");
qDebug() << db.isValid();    // Returns false
  • QSqlError lastError() const
    返回数据库上发生的最后一个错误的信息,QSqlQuery::lastError()报告与单个查询结合发生的失败
  • QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const
    返回数据库连接的当前默认精度策略
  • bool open()
    使用当前连接值打开数据库连接,成功时返回true;否则返回false,可以使用lastError()检索错误信息
  • bool open(const QString &user, const QString &password)
    这是一个重载函数,使用给定的用户名和密码打开数据库连接,成功时返回true;否则返回false,可以使用lastError()函数检索错误信息,此功能不存储给定的密码,相反,密码被直接传递给驱动程序以打开连接,然后被丢弃。
  • QString password() const
    返回连接的密码,如果密码不是用setPassword()设置的,如果密码是在open()调用中给出的,或者如果没有使用密码,将返回一个空字符串
  • int port() const
    返回连接的端口号,如果端口号尚未设置,则该值未定义
  • QSqlIndex primaryIndex(const QString &tablename) const
    返回表tablename的主索引,如果不存在主索引,将返回一个空的QSqlIndex
    注意:如果表在创建时没有被引用,某些驱动程序,如QPSQL驱动程序,可能会要求您以小写形式传递表名
  • QSqlRecord record(const QString &tablename) const
    返回一个由tablename表(或视图)中所有字段的名称填充的QSqlRecord,字段在记录中出现的顺序未定义,如果不存在这样的表(或视图),将返回一个空记录
    注意:如果表在创建时没有被引用,某些驱动程序,如QPSQL驱动程序,可能会要求您以小写形式传递表名
  • bool rollback()
    如果驱动程序支持事务并且transaction() 已经启动,则回滚数据库上的事务,如果操作成功,则返回true,否则返回false
    注意:对于某些数据库,如果有使用数据库进行选择的活动查询,回滚将失败并返回false,在执行回滚之前,使查询处于非活动状态,调用lastError()获取有关错误的信息
  • void setConnectOptions(const QString &options = QString())
    设置数据
  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值