QtのQSqlDatabaseでドライバーがロード済かどうか判断する方法
QSqlDatabaseを使ったデータベースドライバーは、基本的にアプリ内で1回ロードすることを推奨しています。
QSqlDatabase db = QSqlDatabase::addDatabase(<driver>);
mainwindowなどで一度callして、使いまわすのが妥当です。
しかし、クラスの相関関係などで、どうしてもそうできないときがあると思います。
そういう場合、以下の方法で判断できます。
QSqlDatabase db;
if ( db.connectionNames().length() == 0)
db = QSqlDatabase::addDatabase(<driver>, <connection name>);
else
db = QSqlDatabase::database(<connection name>);
<connection name>を指定し、<connection name>が存在するかどうかで判断します。
上の例では、1つのドライバーを使うことを前提にしているので、<connection name>の存在の有無で判断していますが、複数の場合、db.connectionNames().indexOf(<connection name>)を使うとよいでしょう。
2回目以降のcallでは、QSqlDatabase::database() を使って、再利用します。
デバックモードでインフォーメーションが発生するのは、このためです。
リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL (Information & Computing)
- 作者: 増永良文
- 出版社/メーカー: サイエンス社
- 発売日: 2017/03/01
- メディア: 単行本
- この商品を含むブログを見る
スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ)
- 作者: 中山清喬,飯田理恵子
- 出版社/メーカー: インプレス
- 発売日: 2013/04/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
新人エンジニアのための データベースのしくみと運用がわかる本
- 作者: 五十嵐貴之
- 出版社/メーカー: 技術評論社
- 発売日: 2018/02/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
グラス片手にデータベース設計~生産管理システム編 (DB Magazine Selection)
- 作者: 梅田弘之,渡辺時彦,羽田雅一
- 出版社/メーカー: 翔泳社
- 発売日: 2009/03/03
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 6回
- この商品を含むブログ (4件) を見る