QtでSQLite3をクラス化してみたが冗長(QSqlDatabase::database("DB名");)
前回の問題は解決したが……。
成果物
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 2018-06-27
- Qt 5.7.1
前回
問題
QSqlDatabase db = QSqlDatabase::database("MemoDb");
DBを使うメンバメソッドすべてで上記を呼び出している。うざい。DBインスタンスをメンバに持って参照したい。
学んだこと
- QSqlDatabase
QSqlDatabase::contain("DB名")
: 指定したDBが含まれているかQSqlDatabase::addDatabase("QSQLITE", "DB名")
: DBを追加する- プロセス中に1回のみ実行すること。さもなくば実行時に次の文言が出力される
QSqlDatabasePrivate::addDatabase: duplicate connection name 'MemoDb', old connection removed.
- 第2引数にDB名を指定すること。さもなくばDBのインスタンスを取得できない
- プロセス中に1回のみ実行すること。さもなくば実行時に次の文言が出力される
QSqlDatabase::database("DB名")
: 指定したDBのインスタンスを取得する
所感
どうもまだQSqlDatabaseの使い方を理解しきれていない。