微妙なものになった。
成果物
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 2018-06-27
- Qt 5.7.1
前回
- http://ytyaru.hatenablog.com/entry/2019/12/26/000000
- http://ytyaru.hatenablog.com/entry/2019/12/24/000000
- http://ytyaru.hatenablog.com/entry/2019/12/23/000000
- http://ytyaru.hatenablog.com/entry/2019/12/22/000000
- http://ytyaru.hatenablog.com/entry/2019/12/21/000000
ソースコード抜粋
mainwindow.cpp
#include "qtsqlitedb.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QtSqliteDb db("Memo", QApplication::applicationDirPath()); db.Query(tr("create table Memo(id INTEGER PRIMARY KEY AUTOINCREMENT, Memo TEXT, Created TEXT)")); db.Query(tr("insert into Memo(Memo,Created) values('メモ内容', '1999-12-31 23:59:59')")); QSqlQuery query = db.Query(tr("select * from Memo")); while (query.next()) { qDebug() << query.value(0) << "|" << query.value(1) << "|" << query.value(2); } }
呼び出し元。DB接続やトランザクションの処理を省略できる。でもダサいなぁ。
所感
せめてQuery()の引数をQSqlQueryにしたいのだが、QSqlDatabaseを隠蔽しているので難しい。QSqlQueryを返せばいいのだが、トランザクション処理とセットにしたい為、渡しづらい。QSqlQueryで受け取って作り直すのも非効率だし。どうしたものか。