[C++] C++에서 sqlite3 사용하기
SQLite를 C++ 에서 사용하려면 당연히 sqlite3.lib와 sqlite3.h을 추가해 줘야한다.
아래 링크에 순서대로 설명 되어있다.
- sqlite3 사용하기 전 준비 작업
1. Sqlite 설치하기
https://goodprogramer.tistory.com/14
[SQLite] SQLite 다운로드
1. SQLite 란? SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 일반적인 RDBMS에 비해 대규모 작업
goodprogramer.tistory.com
2. sqlite3.h 파일 다운받기 and 다운받은 sqlite3.dll, sqlite3.def 파일로 sqlite3.lib 를 만들기
https://goodprogramer.tistory.com/35
[C++] sqlite3.lib 만들기
C++에서 SQLite를 사용하기 위해선 sqlite3.lib 파일이 있어야 한다. sqlite3.lib 파일은 SQLite 사이트에서 다운 받은 sqlite3.def, sqlite3.dll을 가지고 만든다. 한번 sqlite3.lib 을 만들어보자. 1. SQLite 사이트에
goodprogramer.tistory.com
3. 헤더 파일, lib 프로젝트에 추가하기
https://goodprogramer.tistory.com/37
[Visual Studio] Visual Studio 2022 C 언어/ C++ 외부 라이브러리 추가 총정리
- 시작하기 전 Visual stuido에서 라이브러리 추가 할 때 마다 구글링 해서 따라해보면 사람마다 말이 다르고 안될 때가 많다. 그래서 lib, dll, 외부 헤더파일까지 직접 다 추가해보고 정성스럽게 정
goodprogramer.tistory.com
- sqlite3 예제
sqlite3.h, sqlite3.lib 를 프로젝트에 추가했다면 아래 내용으로 기본적인 테이블 작성이 가능하다.
DB 연결 -> 테이블 생성 -> 데이터 insert를 작성했다.
#include <stdio.h>
#include <sqlite3.h>
int Sqlite_Connect(sqlite3* db);
int Sqlite_Create(sqlite3* db);
int Sqlite_Insert(sqlite3* db);
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
int i;
for (i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char* argv[]) {
sqlite3* db =0;
if (Sqlite_Connect(db) == 0)
return 0;
if (Sqlite_Create(db) == 0)
return 0;
if (Sqlite_Insert(db) == 0)
return 0;
sqlite3_close(db);
}
int Sqlite_Connect(sqlite3* db)
{
char* zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return 0;
}
else {
fprintf(stderr, "Opened database successfully\n");
}
}
int Sqlite_Create(sqlite3* db)
{
char* zErrMsg = 0;
int rc;
const char* sql;
/* Open database */
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return 0;
}
else {
fprintf(stdout, "Opened database successfully\n");
}
/* Create SQL statement */
sql = "CREATE TABLE COMPANY(" \
"ID INT PRIMARY KEY NOT NULL," \
"NAME TEXT NOT NULL," \
"AGE INT NOT NULL," \
"ADDRESS CHAR(50)," \
"SALARY REAL );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
else {
fprintf(stdout, "Table created successfully\n");
}
}
int Sqlite_Insert(sqlite3* db)
{
char* zErrMsg = 0;
int rc;
const char* sql;
/* Open database */
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}
else {
fprintf(stderr, "Opened database successfully\n");
}
/* Create SQL statement */
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \
"VALUES (1, 'Paul', 32, 'California', 20000.00 ); " \
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \
"VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); " \
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \
"VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );" \
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \
"VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
else {
fprintf(stdout, "Records created successfully\n");
}
}
DB Browser를 실행 시켜 확인해보면 테이블이 만들어지고 데이터가 Insert 된 것을 확인 할 수 있다.
- 참조 링크
아래 링크를 참조 했다.
링크에 다른 예제도 많으니 참고해서 필요한 기능을 가져다 쓰면 된다.
https://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm
SQLite - C/C++
SQLite C C++ - In this chapter, you will learn how to use SQLite in C/C++ programs.
www.tutorialspoint.com
- 전체 소스 다운
https://drive.google.com/file/d/10Fyx65OWsWUofveZFSbSmNsvPC6qFCYh/view?usp=sharing
SQLite_Example.zip
drive.google.com