Windows下通过QODBC连接数据库,资料比较多,Linux下经过多次尝试总结最简洁的连接方式如下。
- 首先安装QT5
sudo apt-get install qt5-default qtcreator
- 安装QODBC和QTDS驱动
sudo apt-get install libqt5sql5-odbc unixodbc unixodbc-bin tdsodbc libqt5sql5-tds
- 验证驱动
启动QT,新建工程,在其pro文件中加入QT += sql,查看当前已安装的驱动。
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QStringList ds=QSqlDatabase::drivers();
foreach(QString strTmp,ds)
qDebug()<<strTmp;
return a.exec();
}
返回内容如下,代表驱动安装成功。
QSQLITE
QODBC
QODBC3
QTDS
QTDS7
- 连接SQL Server数据库
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase *db=new QSqlDatabase(QSqlDatabase::addDatabase("QTDS"));
db->setHostName("192.168.24.45"); //SQL Server服务器IP地址
db->setPort(1433); //SQL Server 服务使用的端口
db->setUserName("sa"); //用户名
db->setPassword("123456"); //密码
db->setDatabaseName("TestDB"); //数据库名称
qDebug()<<db->open(); //成功返回 true,失败返回false
db->close();
delete db;
return a.exec();
}
返回 true 打开成功,如果失败,请检查服务器的防火墙及输入的相关参数是否正确。