一:Qt SQL模块概述
Qt SQL模块提供数据库编程的支持,Qt支持多种常见的数据库,如MySQL、Oracle、MS SQL Server、SQLite等。Qt SQL模块包括多个类,可以实现数据库连接、SQL语句执行、数据获取与界面显示等功能,数据与界面之间使用Model/View构架,从而可以方便地实现数据的界面显示和操作。
二:Qt SQL支持的数据库
Qt SQL提供了一些常见数据库的驱动,包括网络型数据库,如Oracle、MS SQL Server等,也包括简单的单机型数据库,如SQLite.Qt SQL提供的数据库驱动见下表。
驱动名 | 数据库 |
---|---|
QDB2 | IBM DB2(7.1及以上版本)数据库 |
QIBASE | Borland InterBase数据库 |
QMYSQL | MySQL 数据库 |
QOCI | Oracle 调用接口驱动(Oracle Call Interface Driver) |
QODBC | Open Database Connectivity(ODBC),Microsoft 的 SQL Server 数据库,以及其他支持ODBC接口的数据库,如Access |
QPSQL | PostgreSQL(7.3及以上版本)数据库 |
QSQLITE2 | SQLite2数据库 |
QSQLITE | SQLite3数据库 |
QTDS | Sybase Adaptive Server,注意:从Qt4.7开始已过时 |
三:使用Qt SQL模块
要在项目中使用Qt SQL模块,需在项目配置文件中增加下面一条设置语句:
Qt += sql
在头文件或源程序文件中使用Qt SQL模块中的类,可以使用包含语句:
#include <QtSql>
这样会将Qt SQL模块中的所有类都包含进去,如果只使用其中的某些类,为避免冗余可以单独包含某个类。
四:查看Qt数据库驱动
1.在pro文件中添加:Qt += sql
2.程序代码为:
#include "widget.h"
#include <QApplication>
#include <QDebug>
#include <QtSql>
#include <QSqlDatabase>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
QStringList driver = QSqlDatabase::drivers();
qDebug() << driver;
return a.exec();
}
代码解释:
定义字符串列表driver,用于存储“QSqlDatabase::drivers()”的返回值——驱动名,
qDebug()用于输出调试信息,此处输出数据库驱动。
查看Qt窗口下方“3.应用程序输出”界面如下:
可见,Qt已有数据库驱动为:(“QSQLITE”, “QMYSQL”, “QMYSQL3”, “QODBC”, “QODBC3”, “QPSQL”, “QPSQL7”)