📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Qtでデータベース操作を行う場合、QtSqlモジュールが必要である。<br> | |||
<br> | |||
QtSqlモジュールはデータベース操作のための機能を提供するQtのコンポーネントであり、<br> | |||
QSqlDatabase、QSqlQuery、QSqlTableModel等のクラスにアクセスして、データベース操作を効率的に行うことができる。<br> | |||
<br> | |||
このモジュールは、SQLite、MySQL、PostgreSQL、Oracle、SQL Server等、多くのデータベースシステムをサポートしており、<br> | |||
使用するデータベースに応じて、適切なドライバーを選択する必要がある。<br> | |||
<br><br> | |||
== データベース操作の流れ == | |||
# データベース接続 | |||
#: <code>QSqlDatabase</code>クラスを使用して接続を確立する。 | |||
#: ドライバの設定、ホスト名、データベース名、ユーザー名、パスワード等を指定する。 | |||
#: <br> | |||
# クエリの実行 | |||
#: <code>QSqlQuery</code>クラスを使用してSQLクエリを実行する。 | |||
#: <br> | |||
# 結果の取得 | |||
#: SELECTクエリの結果は<code>QSqlQuery</code>オブジェクトから取得することができる。 | |||
#: <code>next</code>メソッドを使用して、結果セットを反復処理する。 | |||
#: <br> | |||
# トランザクション処理 | |||
#: <code>QSqlDatabase</code>クラスの<code>transaction</code>メソッド、<code>commit</code>メソッド、<code>rollback</code>メソッドを使用する。 | |||
#: <br> | |||
# エラー処理 | |||
#: <code>QSqlError</code>クラスを使用してエラー情報を取得して処理する。 | |||
#: <br> | |||
# モデル/ビュー | |||
#: <code>QSqlTableModel</code>クラスや<code>QSqlRelationalTableModel</code>クラスを使用してデータをGUIに表示することも可能である。 | |||
<br><br> | <br><br> | ||
| 35行目: | 63行目: | ||
sudo zypper install libmariadbd-devel | sudo zypper install libmariadbd-devel | ||
<br> | <br> | ||
* Qtプロジェクトファイルを使用する場合 | |||
<syntaxhighlight lang="make"> | |||
# Qtプロジェクトファイル (.pro) | |||
# pkg-configを使用してMariaDBの設定を取得 | |||
CONFIG += link_pkgconfig | |||
PKGCONFIG += libmariadb | |||
# 必要に応じて、追加のコンパイルフラグやリンクフラグを指定することもできる | |||
#QMAKE_CXXFLAGS += $$system(pkg-config --cflags libmariadb) | |||
#LIBS += $$system(pkg-config --libs libmariadb) | |||
</syntaxhighlight> | |||
<br> | |||
* CMakeLists.txtを使用する場合 | |||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
# CMakeLists.txtファイル | # CMakeLists.txtファイル | ||
# pkg-configを使用してMariaDBライブラリを検索 | |||
find_package(PkgConfig REQUIRED) | |||
pkg_check_modules(MARIADB REQUIRED libmariadb) | |||
find_package( | |||
# QtライブラリとMariaDBライブラリをリンク | # QtライブラリとMariaDBライブラリをリンク | ||
target_link_libraries( | target_link_libraries(<ターゲット名> PRIVATE | ||
Qt${QT_VERSION_MAJOR}::Sql | Qt${QT_VERSION_MAJOR}::Sql | ||
${ | ${MARIADB_LIBRARIES} | ||
) | ) | ||
# MariaDBのヘッダファイルのディレクトリを追加 | # MariaDBのヘッダファイルのディレクトリを追加 | ||
target_include_directories( | target_include_directories(<ターゲット名> PRIVATE | ||
${ | ${MARIADB_INCLUDE_DIRS} | ||
) | |||
# MariaDBのコンパイルフラグを追加 | |||
target_compile_options(<ターゲット名> PRIVATE | |||
${MARIADB_CFLAGS_OTHER} | |||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||