QT Application에 SQLite 또는 MariaDB 연결하기.
아무리 간단한 Application 이라도 설정값을 저장하기 위해 대부분 DB연결이 필요하기에 간단히 SQLite와 MariaDB 연결하는 방법을 블로그 해놓습니다.
1. 프로젝트.pro 파일에 sql lib 사용 선언
QT += core gui sql
2. 코드에 헤더파일 추가
#include <QtSql/QSqlQuery>
3. 사용 코드 선언
3-1. QSLite 사용 코드
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("DB.db"); // <- DB path와 파일명을 넣으시면 됩니다.
bool isOpendDB = db.open();
qDebug() << "isOpendDB : " << isOpendDB
3-2. mariaDB 사용 코드
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("root");
db.setDatabaseName(DB_NAME);
bool isOpendDB = db.open();
qDebug() << "isOpendDB : " << isOpendDB
위의 코드를 추가 후 아래 코드를 추가해 봅니다.
(해당 코드는 현재 환경에 어떤 DB Library가 설치되어져 있는지 확인하는 코드 입니다.)
qDebug() << QSqlDatabase::drivers();
Qt Application을 실행해 봅니다.
저의 경우 SQLite 사용을 위해 위의 SQLite 관련 코드를 삽입 후 실행 하였지만,
아래와 같은 에러로그가 발생하였습니다.
Gtk-Message: 10:42:22.688: Failed to load module "canberra-gtk-module" |
위와 같이 발생한다면 2가지 해결방법이 있습니다.
1. QT source를 받아 관련 plugin을 빌드하여 해당 plugin을 설치하는 방법.
2. QT SQL 관련 Package 설치.
* 애드블럭 해제하시면 관련 설명이 나타납니다.
우선, 1번 방법을 기입합니다.
① QT Source가 위치한 폴더로 이동하여 아래 명령어를 순서대로 입력.
(QT Source는 Download 및 Build 링크 -> Ubuntu 18.04LTS 환경설정에 QT 프레임워크 설치하기(X11 platform 용))
② qt plugins/sqldrivers/sqlite에 진입하여 qmake를 합니다.
cd $QTDIR/src/plugins/sqldrivers/sqlite
qmake "INCLUDEPATH+=$SQLITE/include" "LIBS+=-L$SQLITE/lib -lsqlite"
make
③ make 후 install 합니다.
cd $QTDIR/src/plugins/sqldrivers/sqlite
make install
④ 구현하신 Appliation을 재 구동 해봅니다.
isOpenDBk : true |
위와 같은 방법을 진행하였는데도 동작하지 않는다면,
강제적으로 해당 라이브러리를 적용하면 됩니다.
/usr/local/Trolltech/Qt-4.8.7/plugins/sqldrivers/ 에 붙여 넣으면 됩니다.
2번 방법을 기입합니다.
비교적 많이 간단합니다.
① 관련 package 설치
- 아래 package 중 사용 하려는 DB를 설치합니다.
libqt4-sql libqt4-sql-mysql libqt4-sql-odbc libqt4-sql-psql libqt4-sql-sqlite libqt4-sql-tds |
sudo apt install libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite -y
QT Application에 SQlite 연결하기 끝.
'QT' 카테고리의 다른 글
[QT] Ubuntu 18.04LTS環境設定にQTフレームワークを設置する(X11 platform 用) (0) | 2019.02.06 |
---|---|
[QT] QT Applicationに SQlite連結する (0) | 2019.02.06 |
[QT]QTCtreator 윈도우에서 X window 로 사용하기 (0) | 2019.01.31 |
[QT] Ubuntu 18.04LTS 환경설정에 QT 프레임워크 설치하기(X11 platform 용) (0) | 2019.01.31 |
[QT] 타이틀 영역 제거 (0) | 2019.01.30 |