Qt数据库编程.doc_第1页
Qt数据库编程.doc_第2页
Qt数据库编程.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_Qt数据库编程 现在我们讲使用数据库来进行变成, 具体的提供了SELECT INSERT UPDATE DELETE 等数据库的执行语句, 这是在数据库的接口, 当在图形下显示数据时需要使用到QSqlTableModel . 所以在数据库编程之前需要掌握基础的SQL 命令语句。数据库驱动成 相关联的累包含了QSqlDriver , QSqlDriverCreatpor ,QSqlDriverCreatorBase, QSqlDriverPlugin与QSqlResult .数据库的应用程序接口层 这些累提供了访问数据库, 提出一个连接请求,如同文件访问一样, 当连接成功, 讲通过判断信息返回信息, 只要建立了连接就可以使用QSqlQuery 类, 来操作数据库, 在连接数据库之后还提供了几个类, 例如QSqlError , QSqlField , QSqlIndex , 与QSqlRecord用户接口层 这些累提供了与数据相关的不见, 包含了QSqlQueryModel, QSqlTableModel, 与QSqlRelationTableModel 。 这些类的定义使用是用来提供数据库的模式与试图来设计的。连接到数据库 如果要建立一个数据库的连接, 首先要知道使用的什么数据库, 并为这个数据库的连接加载驱动, 如果是mysql 数据库, 都会有用户名与密码, 这也是必须设置的, 被连接的数据库或许在本地或者在远程的某台计算机上, 所以需要设置一个主机的名称来区别。下面是连接数据库的例子: QSqlDatabase db = QSqlDatabase:addDatabase(QMYSQL); db.setHostName(bigblue); db.setDatabaseName(flightdb); db.setUserName(acarlson); db.setPassword(1uTbSbAs); bool ok = db.open(); 我们同时也可以建立两个数据库的连接: QSqlDatabase firstDB = QSqlDatabase:addDatabase(QMYSQL, first); QSqlDatabase secondDB = QSqlDatabase:addDatabase(QMYSQL, second); 在打开数据库的时候有可能会发生错误, 这里提供了一个静态的函数, QSqlDatabase:lastError() 来返回当前所发生的错误。 与文件相同当打开了一个数据的时候, 需要在操作完毕后关闭数据库, 使用QSqlDatabase:close(), 之后调用QSqlDatabase:removeDatabase().执行数据库语句 QSqlQuery 提供了执行数据库语句的方法, 它可以返回所有的执行结果。 当建立好数据库连接后可以使用QSqlQuery:exec() 如同下面的语句: QSqlQuery query; query.exec(SELECT name, salary FROM employee WHERE salary 50000); 当QSqlQuery 建立了一个构造之后, 将会接受特定的QSqlDatabase 对象连接来使用, 正如上面的代码 。 浏览查询结果 QSqlQuery 当执行exec() 之后将会把指针放在记录第一个记录之上, 所以需要调用QSqlQuery:next() 来获取第一个数据下面的代码, 通过一个循环体来便利所有表中的数据: while (query.next() QString name = query.value(0).toString(); int salary = query.value(1).toInt(); qDebug() name salary; QSqlQuery:value() 函数当前记录区域中的数据, 作为默认的QSqlValue:value() 返回的是一个QVariant 类型。 提供了几种可选类型的支持, 他们是C+ 的基本的类型, 比如 int QString 与 QByteArray 。 对于不同类型的转换使用Q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论