0

そのため、接続が不要になったらすぐにデータベース接続を閉じ、接続が必要になったらすぐに開くのが良いプログラミングだと聞いたことがあります。そのため、必要のないときはいつでも接続を閉じていますが、プログラムの速度が大幅に低下していることに気付きました (ウィンドウを開くのに約 2 秒かかります)。これを解決する方法はありますか?

私はQSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");グローバルとして定義しましたが、必要なときにいつdb.open();でも実行しdb.close();ました。さらに、接続を常に開いたままにしておくと、ウィンドウがすぐに読み込まれます。

編集:人々がこれを言う理由は、プログラムの使用中に接続がドロップ/切断され、保存されていないデータ/大きな問題などにつながる可能性があるためです

4

1 に答える 1

1

他の人がコメントしているように、db 接続を開いたままにします。接続が切断されることが心配な場合はQSqlDatabase::isOpen()、クエリを実行する前に を使用してテストできます。

準備されたクエリを使用している場合は、接続を開いたままにしておくとさらに効果的です ( QSqlQuery::prepare)。準備されたクエリは、接続が開いている限り使用できます。

編集

非対話型セッションの非アクティブ タイムアウトを変更できます ( sysvar_wait_timeoutを参照)。私は MySQL の専門家ではありませんが、これは役立つかもしれません

于 2013-06-29T16:29:27.573 に答える