📢 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ファイル
   
   
  cmake_minimum_required(VERSION 3.21)
  # pkg-configを使用してMariaDBライブラリを検索
  find_package(PkgConfig REQUIRED)
project(QtMariaDBProject LANGUAGES CXX)
  pkg_check_modules(MARIADB REQUIRED libmariadb)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
 
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
  find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Sql)
  find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Sql)
# MariaDB Connector/Cを検索
find_path(MARIADB_INCLUDE_DIR mysql.h
    /usr/include/mysql
)
find_library(MARIADB_LIBRARY NAMES mariadb
    PATHS
    /usr/lib
    /usr/lib64
)
if(NOT MARIADB_INCLUDE_DIR OR NOT MARIADB_LIBRARY)
    message(FATAL_ERROR "MariaDB Connector/C not found!")
endif()
add_executable(QtMariaDBProject
    main.cpp
    DataBaseManager.h
    DataBaseManager.cpp
)
   
   
  # QtライブラリとMariaDBライブラリをリンク
  # QtライブラリとMariaDBライブラリをリンク
  target_link_libraries(QtMariaDBProject PRIVATE  
  target_link_libraries(<ターゲット名> PRIVATE  
    Qt${QT_VERSION_MAJOR}::Core
     Qt${QT_VERSION_MAJOR}::Sql
     Qt${QT_VERSION_MAJOR}::Sql
     ${MARIADB_LIBRARY}
     ${MARIADB_LIBRARIES}
  )
  )
   
   
  # MariaDBのヘッダファイルのディレクトリを追加
  # MariaDBのヘッダファイルのディレクトリを追加
  target_include_directories(QtMariaDBProject PRIVATE
  target_include_directories(<ターゲット名> PRIVATE
     ${MARIADB_INCLUDE_DIR}
     ${MARIADB_INCLUDE_DIRS}
)
# MariaDBのコンパイルフラグを追加
target_compile_options(<ターゲット名> PRIVATE
    ${MARIADB_CFLAGS_OTHER}
  )
  )
  </syntaxhighlight>
  </syntaxhighlight>