-
[MFC]SQLite 환경설정 및 DB 컨트롤💻 프로그래밍/C, C++ 2017. 11. 11. 02:00
안녕하세요! JAY 입니다!! 벌써 가을이 지나고 겨울이 다가왔네요 ㅜㅜ
요새 기온이 오락가락해서 감기걸리기 쉬운데 감기 조심하세요~~
이번 포스팅에서는 MFC에서 SQLite3를 사용한 DB다루기를 해보겠습니다.
1. SQLite 및 SQLite Wrapper, 다운
먼저, MFC에서 SQLite3를 사용하기 위해서는 몇가지 준비가 필요합니다.
첫번째로, SQLite를 다운로드 합니다. 아래 링크에 들어가 자신의 환경에 맡는 SQLite를 다운로드 합니다.
압축파일을 풀면 sqlite3.dll 파일이 있습니다. 이 파일을 Release, Debug 폴더에 복사합니다.
추가로 SQLite 라이브러리를 추가해줘야 하는데, 저는 이미 만들어져 있는 걸 사용하였습니다.
SQLite 라이브러리를 만드는 방법은 아래 링크를 참고하시면 될 것 같습니다.(SQLite 라이브러리 첨부파일로 추가했습니다.)
다운로드 하거나 직접 만든 sqlite3.lib를 프로젝트 속성 -> 링커 -> 입력 -> 추가종속성 에 추가해줍니다.
SQLite 라이브러리, 헤더파일 :
sqlite3.lib
sqlite3.h
SQLite 라이브러리 만드는방법 : http://six605.tistory.com/299
SQLite 다운로드 링크 : http://www.sqlite.org/download.html
두번째로, SQLite를 사용하기 위한 Wrapper를 다운합니다. SQLite를 사용하기 위한 Wrapper로 CppSQLite를 많이 사용하며, 아래 링크에서 CppSQLite3U.zip 을 다운받은 뒤, 압축을 풀면 CppSQLite3U.h, CppSQLite3U.cpp 가 나옵니다. 이 두파일과 sqlite3.h 를 프로젝트의 common폴더에 복사한 뒤, 프로젝트에서 소스파일과, 헤더파일로 추가해줍니다.
CppSQLite3U 다운로드 링크 : http://softvoile.com/development/CppSQLite3U/
마지막으로, 프로젝트에 CppSQLite3U.h 를 include하면 준비는 끝이납니다.
2. DB의 내용 ListBox에 출력하기
scanDB라는 함수로 DB의 내용을 읽은 뒤 ListBox에 출력해 보도록 하겠습니다.
1234567891011121314151617181920212223242526272829303132// DB에서 데이터를 읽어서 리스트에 뿌려줌(더해줌)void CsqliteTestDlg::scanDB(){CString sTmp;CListBox* pListPage;// DB 생성CppSQLite3DB db;try {// DB가 있는 경로에서 DB를 opendb.open(_T("test.db"));// SQL 쿼리를 날려, 출력할 테이블의 컬럼을 정안다sTmp.Format(_T("select name, region from customer;"));CppSQLite3Query q = db.execQuery(sTmp);// 컬럼이 없을때까지 출력while (!q.eof()) {CString nIdx = q.getStringField(0);sTmp.Format(_T("%s"), nIdx);// ListBox 변수에 DB값 추가viewDB.AddString(sTmp);q.nextRow();}} catch (CppSQLite3Exception &e) {viewDB.AddString(_T("에러"));}// db종료db.close();}(test.db의 customer 테이블에 있는 컬럼들의 내용)
(출력결과)
오늘 포스팅에서는 MFC에서 SQLite를 사용해 DB의 내용을 읽어봤는데요. SQL 쿼리 관련 내용은 여러분께서 한번 찾아보시길 바랍니다.
이상으로 오늘의 포스팅을 마치겠습니다. 즐거운 코딩하세요!!:D
'💻 프로그래밍 > C, C++' 카테고리의 다른 글
[MFC]CAsyncSocket 클래스 Connect() 반환값 버그(?) (2) 2018.08.30 [MFC]ListBox 컨트롤 및 DB연동(SQLite3) (0) 2017.11.12