私のアプリケーションは、私は私のコードでこれをも含まれているこのようODBCプラグインを使用するQTアプリケーション(静的リンクなし)をどのように展開できますか?
QString servername = "SQL09.FreeMySQL.net";
QString dbname = "psiprobation";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setConnectOptions();
QString dsn = QString("DRIVER={MySQL ODBC 5.1 Driver};SERVER=%1;DATABASE=%2;USER=jnchappell21;PASSWORD=XXXXXXX").arg(servername).arg(dbname);
db.setDatabaseName(dsn);
QtのSQLを使用しています...
a.addLibraryPath(a.applicationDirPath()+"/plugins");
"プラグイン" フォルダが別のフォルダ "sqldrivers" が含まれています。 "sqldrivers"の中には、myodbc5.dll、myobdc5S.dll、qsqlodbc4.dll、およびqsqlodbcd4.dllがあります。 (注: "plugins"フォルダは実行可能ファイルと同じディレクトリにあります)
これで、アプリケーションはQtがインストールされているシステムで完全に動作します。ただし、QTがインストールされていない他のシステムでは、アプリケーションが実行されても(つまりGUIが開き、エラーメッセージが表示されても)データベースに接続できません。
エラーメッセージは次のとおりです。「[Microsoft]の[ODBCドライバマネージャ]データソース名が見つかりませんし、デフォルトのドライバがQODBC3指定されていません:接続することができません」
この問題に対する解決策は何ですか?
表示される正確なエラーは何ですか? –
「エラーメッセージ」は説明的ではありません。これは、 "Unknown Error Occurred"と表示されるダイアログです。このダイアログは、(!db.open())の場合にのみトリガされます。 – JNChappell21
「不明なエラーが発生しました」ダイアログは、データベースにアクセス中(または最初にアクセスしようとしたとき)にエラーが発生したかどうかを表示するために作成したものです。 – JNChappell21