您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> 移动技术 >> Symbian开发 >> 正文
  Qt数据库连接操作和查询教程         ★★★ 【字体:
Qt数据库连接操作和查询教程
作者:互联网    文章来源:互联网    点击数:    更新时间:2011-7-14    

Qt 数据库连接操作和查询教程是本文介绍的内容,由于授权许可的限制,Qt的开源版本无法提供所有的数据库驱动程序。当使用Qt调用数据库时,既可以选择Qt本身包含的SQL驱动程序,也可以以插件的形式建立对应数据库驱动插件。以MySQL为例:

为了执行SQL查询,首先必须建立与数据库的连接。通常情况下,是在应用程序开始时所调用的一个单独的函数中建立数据库连接。例如:

  1. bool createConnection()
  2. {
  3. QSqlDatabase db=QSqlDatabase::addDatabase(“QMYSQL”);//建立与MySQL数据库的连接
  4. db.setDatabaseName(“musicdb”);//设置数据库名称
  5. //告知数据库的用户名和密码
  6. db.setUserName(“root”);
  7. db.setPassword(“root”);
  8. if(!db.open())
  9. {
  10. QMessageBox::critical(0,QObject::tr(“Database Error”),db.lastError().text());
  11. return false;
  12. }
  13. return true;
  14. }

通常情况下,是在main()函数中调用createConnection函数: int main(int argc,char *argv[])

  1. {
  2. QApplication app(argc,argv);
  3. if(!createConnection())
  4. {
  5. return 1;
  6. }
  7. …….
  8. return app.exec();
  9. }

一旦建立连接,就可以使用QSqlQuery执行底层数据库支持的任何SQL语句了。例如,以下是如何执行SELECT语句的代码:

  1. QSqlQuery query;
  2. query.exec("SELECT title,year FROM cd WHERE year>=1998");

在调用exec()之后,可以遍历查询结果集:

  1. while(query.next())
  2. {
  3. QString title=query.value(0).toString();
  4. int year=query.value(1).toInt();
  5. qDebug() << title<< year; //打印查询结果
  6. }

第一次调用next()函数就可以把这个QSqlQuery定位到结果集中的第一条记录。随后的next调用都会把记录指针后移一条记录,直至到达结尾时next才返回false。如果结果集为空(或查询失败),那么next第一次调用将返回false。value()函数把字段值做为QVariant返回,字段是按照SELECT语句中给定的顺序从编号0开始的(千万不要弄错顺序)。

QSqlQuery还提供了一些可以遍历结果集的函数:first(),last(),previous(),seek().这些函数都很方便,不过他们一般要比next()更慢或者更加耗费内存。在操作一个大数据集市,为了方便优化,可以在调用exec()之前调用QSqlQuery::setForwardOnly(true),然后只可以使用next()遍历结果集。

之前,我们把SQL语句指定为QSqlQuery::exec()的参数,然而还可以简化上面的代码直接将SQL语句做为QSqlQuery构造函数的参数,构造函数就会立即执行SQL查询:

  1. QSqlQuery query(“SELECT title,year FROM cd WHERE year>=1998”);

小结:关于Qt数据库连接操作和查询教程的内容介绍完了,希望本文对你会有所帮助!

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    QT平台上模拟鼠标事件案例
    QT安装Mysql数据库插件实例操…
    详解 Ubuntu 10.10下Qt与wxW…
    详解QT线程 串口接收程序
    解析Ubuntu 10.10 安装QT Ee…
    详解在Ubuntu Linux下独立编…
    详解Qt4访问Sqlite数据库
    Qt事件处理机制(上篇)
    Qt事件处理机制(下篇)
    Qt智能指针使用指南 帮助篇
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号