Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370211
  • 博文数量: 50
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 641
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-09 22:35
个人简介

不怕你失败,就怕你爬不起来。

文章分类

全部博文(50)

文章存档

2014年(50)

我的朋友

分类: 嵌入式

2014-10-11 11:23:31

1、如何检查当前Qt版本支持的数据库驱动程序?
可以调用QSqlDataBase::drivers();
qDebug() << m_dbTest.drivers();  
打印如下,可知笔者的Qt5.3支持七种数据库驱动程序:
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

2、QSqlDataBase表示的并不是一个数据库文件,而是一个到数据库的连接。

3、QSqlDatabase::addDatabase(onst QString & type, const QString & connectionName = QLatin1String( defaultConnection));
type                    :     数据库驱动程序类型
connectionName   :     数据库连接的名称(可选)

4、QSqlDatabase::setDatabaseName(const QString & name);
name                  :     设置已连接的数据库的名称

数据库名称和连接名称是不一样的,前者传递给setDatabaseName(),后者传递给addDatabase().
在打开数据库连接之前,必须使用setDatabaseName()或其他与服务器参数有关的函数(如:setHostName()、setUserName()、setPassword())进行初始化。

5、同是SQL语句执行的方法,QSqlQuery::exec(QString)与QSqlQuery::prepare(QString)的区别在哪?
(1) exec()需要解析每个SQL语句,速度相对较慢
(2) prepare()是预处理语句,不需要对字符串进行转义,相对更安全,也比较迅速;此外,预处理语句可以预防SQL注入攻击和其他可能出现的解析错误。
阅读(2143) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~