일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- #채터링
- sqlite
- 인터럽트
- avr
- petalinux
- Database
- #UART
- #MCU
- #PuTTY
- zynq
- #textLCD
- Embedded linux
- git
- #ComportMaster
- #CLCD
- ubutu
- SQLite Studio
- Interrupt
- ubuntu
- ATMEGA128
- #시리얼통신
- xilinx
- github
- #문자열
- Linux
- #Atmega128
- Today
- Total
재잼재잼의 티스토리
2. SQLite DB생성 및 Qt연결 본문
Qt 프로그램에 DB를 연결하기 전에 SQLite를 사용하여 DB 파일을 먼저 만들어야 한다.
터미널 창에서 sqlite3를 입력하여 생성해도 좋고, SQLite Studio를 사용하여 만들어도 좋다.
나는 SQLite Studio를 사용해서 데이터베이스 파일을 만들 예정.
1. SQLite Studio를 열고, 상단에 "add a database"를 눌러 데이터베이스를 먼저 생성함
2. Create the table 을 눌러서 새로운 테이블 생성.
3. Add column을 눌러서 새로운 column을 생성. 기본키, NOT NULL과 같은 설정을 할 수 있음.
위와 같이 추가했을 경우, 녹색 체크박스(commit ~~~)를 눌러서 변경사항을 적용할 수 있다.
이렇게 생성한 데이터베이스는 파일로 저장되는데, 터미널창에서 확인해보자.
위 처럼 데이터베이스 파일 test를 확인할 수 있고, file 명령어를 통해서 파일에대한 정보를 확인할 수 있다.
이 test 데이터베이스 파일을 Qt 프로그램에 연결할 수 있다.
----------------------------------------------------
Qt프로그램에 생성한 데이터베이스 파일을 연결해보자.
QT에서는 QsqlDatabase 클래스를 사용해서 데이터베이스에 연결한다.
헤더파일에 include를 하고, 프로젝트 파일(.pro)에 sql을 추가해준다.
데이터베이스와 connection을 만들기 위해서는 addDatabase()함수를 사용하는데, 연결에 사용할 데이터베이스 드라이버와 데이터베이스 이름이 필요하다.
즉, QT에서 데이터베이스에 연결하기 위해서는 ....
1. 데이터베이스 파일 생성
2. Qt에 QsqlDatabase 클래스 include
3. addDatabase 함수에 데이터베이스 driver, name으로 DB추가.
4. open() 함수로 connection 생성.
순으로 진행할 수 있다.
나는 sqlite3을 사용하고 있고, 위에서 만든 DB는 test이므로, 아래의 코드로 구성할 수 있다.
#ifndef DB_MANAGER_H
#define DB_MANAGER_H
#include <QtDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
class db_manager{
public:
db_manager(const QString& path);
private:
QSqlDatabase my_db;
};
#endif // DB_MANAGER_H
위 코드는 Qt에서 DB를 사용하기 위해서 만든 db_manager 클래스 파일.
db_manager::db_manager(const QString& path){
my_db = QSqlDatabase::addDatabase("QSQLITE");
my_db.setDatabaseName(path);
if(my_db.open()){
qDebug() << "success DB connection.\n";
}
else{
qDebug() << "fail DB connection.\n";
}
}
db_manager 클래스의 생성자로 데이터베이스 이름을 가지고 connection을 생성하고 결과를 콘솔화면에 출력한다.
--------------------------------------
데이터베이스 파일은 qt프로그램의 build 폴더에 옮긴다음에 실행해야 에러없이 실행할 수 있다.
다음에는 연결된 DB의 테이블에 값을 추가, 조회, 삭제 등 DML에 해당하는 query를 실행해보도록 하자.
'리눅스 Qt 프로그래밍' 카테고리의 다른 글
1. 우분투에 SQLite3/SQLite Studio 설치. (0) | 2019.06.14 |
---|