반응형
1. MFC프로젝트 생성
적당한 MFC 프로젝트를 생성한다.
2.SQLite 사이트에서 파일 다운
자신의 프로젝트 환경에 맞는 파일들을 선택해서 다운로드 받는다.
필자는 윈도우 x86 환경을 선택하였다.
3. lib 파일 만들기
- 2번에서 다운 받은 파일을 압축 해제를 한다.
- developer command promprt for vs2019를 실행 시킨다.
- 명령어 입력
32bit : lib /def:sqlite3.def
64bit : lib /def:sqlite3.def /machine:x64
해당 명령어를 실행 시켜 lib 파일을 생성.
4. 프로젝트 라이브러리 설정
- [프로젝트 속성] -> [링커] -> [입력] -> [추가종속성] 설정
- [프로젝트 속성] -> [VC++ 디렉터리]->[라이브러리 디렉터리] lib 파일 위치 설정
or
프로젝트 폴더에 lib 첨부.
5. sqlite3 사용하기
- sqlite3.h 인클루드 후 사용.
6.샘플코드
- DataBase Open
bool SqliteDB::openDB()
{
int rc;
CString str;
rc = sqlite3_open("test.db", &db);
if (SQLITE_OK != rc)
{
return false;
}
MessageBoxW(nullptr, L"open DB", L"알림", MB_OK);
return true;;
}
- Create Table 실행
sqlite3_exec를 이용하여 새로운 테이블 생성.
bool SqliteDB::createTable()
{
int rc;
char* sql = "drop TABLE if EXISTS TRACEDATA; CREATE TABLE TRACEDATA(id INTEGER, string TEXT);";
char* err_msg;
rc = sqlite3_exec(this->db, sql, 0, 0, &err_msg);
if (SQLITE_OK != rc)
{
MessageBoxW(nullptr, L"create Table", L"에러", MB_OK);
sqlite3_free(err_msg);
sqlite3_close(this->db);
return false;
}
MessageBoxW(nullptr,L"create Table", L"알림", MB_OK);
return true;
}
sqlite3_exec()
SQLITE_API int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
- select 문 실행
sqlite3_get_table을 이용하여 table정보를 가져온다. rows, columns 는 table의 row, column 갯수를 넘겨 받는다.
char** SqliteDB::selectDB(int &rows, int &columns )
{
char* sql = "SELECT *FROM TRACEDATA";
int rc;
char* err;
char** result = nullptr;
rc = sqlite3_get_table(this->db, sql, &result, &rows, &columns, &err);
if (rc != SQLITE_OK)
{
MessageBoxW(nullptr, L"select", L"에러", MB_OK);
return nullptr;
}
return result;
}
sqlite3_get_table
SQLITE_API int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
7. Viewer
해당 파일을 이용하면 쉽게 데이터 베이스를 확인할 수 있음.
반응형
'프레임워크 > MFC' 카테고리의 다른 글
[MFC] Progressbar 사용법. (0) | 2022.11.22 |
---|---|
[MFC] 외부 프로그램 실행 예제 (CreateProcess, ShellExecute) (0) | 2022.07.21 |
[MFC] Memory Mapped File (0) | 2022.04.12 |
[MFC] 윈도우 창 및 하단 아이콘 숨기기 (0) | 2022.04.11 |
[MFC] 현재 실행파일 경로 불러오기 (0) | 2022.04.11 |
댓글