QT

[QT] QT Application에 SQLite , mariaDB 연결하기

크게웃기 2019. 1. 31. 10:58
반응형

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"
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers: QMYSQL3 QMYSQL
isOpenDBk :  false

 

 

위와 같이 발생한다면 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/ 에 붙여 넣으면 됩니다.

libqsqlite.so
다운로드

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 연결하기 끝.

좋아요

 

 

반응형