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) |