やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

QtでSQLite3をクラス化してみたが冗長(QSqlDatabase::database("DB名");)

 前回の問題は解決したが……。

成果物

github.com

対象環境

  • 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のインスタンスを取得できない
    • QSqlDatabase::database("DB名"): 指定したDBのインスタンスを取得する

所感

 どうもまだQSqlDatabaseの使い方を理解しきれていない。