Skip to content

ytyaru/Cpp.Qt.Widget.QtSqliteDb.20181128160000

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

このソフトウェアについて

 Qt5学習。QtでSQLite3を使うラッパクラスを作ってみた2。

  • SQL実行時エラーをqDebugで表示するようにした
  • 複数行のSQLを実行するメソッドを作った: void Query(QStringList)

前回まで

コード抜粋

SQL実行時エラーをqDebugで表示するようにした

qtsqlitedb.cpp

QSqlQuery QtSqliteDb::Query(QString query)
{
    QSqlDatabase db = QSqlDatabase::database(this->dbName);
    db.transaction();
    try {
        QSqlQuery q(db);
        q.exec(query);
        QSqlError err = q.lastError();
        if (!err.text().trimmed().isEmpty()) { qDebug() << "SQLieteError: " << err.text(); }
        db.commit();
        qDebug() << "QSqlDatabase::commit(): " << query;
        return q;
    } catch (...) {
        qDebug() << "QSqlDatabase::rollback(): " << query;
        db.rollback();
    }
}

 QSqlErrorというやつ。

複数行のSQLを実行するメソッドを作った

 引数がQStringでなくQStringListのメソッド。戻り値がない。複数のInsert文を実行することを想定。

void QtSqliteDb::Query(QStringList queries)
{
    QSqlDatabase db = QSqlDatabase::database(this->dbName);
    db.transaction();
    try {
        QSqlQuery q(db);
        foreach (QString query, queries) {
            q.exec(query);
            QSqlError err = q.lastError();
            if (!err.text().trimmed().isEmpty()) { qDebug() << "SQLieteError: " << err.text() << "\n" << query << ": "; }
        }
        qDebug() << "QSqlDatabase::commit()" << queries;
        db.commit();
    } catch (...) {
        qDebug() << "QSqlDatabase::rollback()" << queries;
        db.rollback();
    }
}

Qt要素

開発環境

環境構築

ライセンス

 このソフトウェアはCC0ライセンスである。

CC0

利用ライブラリ

ライブラリ ライセンス ソースコード
Qt LGPL GitHub

About

QtでSQLite3を使うラッパクラスを作ってみた2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published