1、ODBC Driver 的版本要对应上。
if (!strDbDirPath.isEmpty())m_strDbDirPath = strDbDirPath;m_strDatabaseName = strDatabaseName;if (m_database.isOpen() || m_bConnected){qDebug() << QString("QODBC:已经连接成功!") << "\n";return m_database;}else{m_database = QSqlDatabase::addDatabase("QODBC");// 这里要注意ODBC Driver 17 版本要不然可能整型和读点数读取不到QString strConnect = QString("DRIVER={ODBC Driver 17 for SQL Server};""SERVER=%1;" //服务器名称"DATABASE=%2;"//数据库名"UID=%3;" //登录名"PWD=%4;" //密码).arg(strHostName).arg(strDatabaseName).arg(strUserName).arg(strPassword);qDebug() << QString("QODBC:") << strConnect << "\n";m_database.setDatabaseName(strConnect);if (!m_database.open()){qDebug() << QString("QODBC:连接失败!") << "\n";QString strText = m_database.lastError().text();qDebug() << m_database.lastError().text();}else{qDebug() << QString("QODBC:连接成功!") << "\n";m_bConnected = true;}}