Qt5は、この記事では、二つの最も一般的な問題だけでなく、その比較的単純な解決策を説明し、MySQLデータベースに接続するいくつかの問題があるでしょう。
Qt5 MySQLデータベースには、リストをサポートしていません。
サポートされているデータベースの種類を表示するには、次のコードを入力します。
//打印支持的数据库类型
qDebug()<<QSqlDatabase::drivers();
現象:
サポートデータベースで見つけることができないのリスト「QMYSQL」、オープンQt5.X.X\5.X.X\mingwXX_XX\plugins\sqldrivers
次の2つのファイルの欠如を見つけることがあります。
理由: Qt5の以前のバージョンではありませんMySQLドライバ、ではないqsqlmysql.dll
、そしてqsqlmysqld.dll
これら2つのファイルは、手動でコンパイラを追加する必要があります。
解決方法1:我々はより5.8バージョンに自分自身をアップグレードすることができるようにQt5.8(特に検証する)以降は、駆動デフォルトのMySQL(現在は最速アップデート5.1.4は、MySQLドライバではありません)の後に来ます問題は、それが長期的なサポートバージョン5.9することが推奨され、解決することができます。
解決方法2:手動でコンパイルドライバファイルにまたはそれに追加されたファイルをコンパイルし、対応するドライブ他人をダウンロードしてください。コンパイルされた公式のWebを参照してください。SQL-ドライバ
QMYSQLドライブがロードされていません
次のコードは、データベース接続を入力します。
//连接数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("hll523811");
db.setDatabaseName("db");
if(db.open()==false){
qDebug()<<"打开失败"<<db.lastError().text();
}
現象:
クラシックな問題が発生:QMYSQLドライブがロードされていません
理由:Qt5.X.X\5.X.X\mingwXX_XX\bin\
MySQLのLIBファイルの欠如、私たちは使用できません。
ソリューション:オープンmysql-X.X.XX-winxXX\lib
コピーlibmysql.dll
にQt5.X.X\5.X.X\mingwXX_XX\bin\
缶
注意:
1. libmysql.dll
文書は、MySQLのバージョンの適切な使用と一致する必要があります
2.32 QT複製は、MySQLで32ビットであるlibmysql.dll
が、また、対応する64ビット、64ビット
3.異なる含まれているのMySQLの異なるバージョンlibmysql.dll
、異なるlibmysql.dll
ニーズと支援qsqlmysqld.dll
qsqlmysql.dll
の仕事に一緒に