QT连接SQL Server以及MySql

本文详细介绍了在QT环境下连接SQL Server和MySQL时遇到的问题及其解决方案。对于SQL Server,问题在于缺少数据源,解决方案是通过ODBC管理器添加用户DSN。对于MySQL,问题包括QMYSQL驱动未加载,可能的原因包括QT版本过旧、缺少相关动态库或版本不匹配。解决方法涉及更新QT版本、复制libmysql库文件和确保位数一致。同时提供了使用QODBC方式连接MySQL的提示。
摘要由CSDN通过智能技术生成
问题1:连接SQL Server时,使用如下方式
  • 方式1
    m_db = QSqlDatabase::addDatabase("QODBC");
    m_db.setHostName("localhost");
    m_db.setDatabaseName("Learn");
    m_db.setUserName("sa");
    m_db.setPassword("123456");

报错: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect
原因:这种需要数据源dsn,但是本地没有
解决:打开C:\Windows\System32\odbcad32.exe,添加用户DSN,数据源的名字就是setDatabaseName要设置的名字,设置过后就可以正确连接。(如果需要远程访问本地的数据库,需要设置系统DSN)

  • 方式2
// 无需设置DSN数据源,直接就可Open
 QString conn = QString("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;UID=%3;PWD=%4;")
            .arg("localhost")
            .arg("Learn")
            .arg("sa")
            .arg("123456");
    m_db.setDatabaseName(conn);
问题二:连接MYSQL时,使用如下方式
    m_db = QSqlDatabase::addDatabase("QMYSQL");
    m_db.setHostName("localhost");
    m_db.setDatabaseName("Learn");
    m_db.setUserName("root");
    m_db.setPassword("123456")
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值