응용프로그램에서 데이타베이스를 인베디드 시키려면 DB 를 동작할수 잇게 해주는 라이브러리가 필요하다.
크게 두가 지가 제일 유명한 것 같다.
구글의 LevelDB 와 SQLite 이다.
LevelDB 는 key-Value 방식으로 사용된다 NoSQL 이다.
나는 SQL 이 필요하기 때문에 SQLite 를 사용하기로 했다.
SQLite 를 응용프로그램에 인베디드 시키는 방법을 소개한다.
1, 먼저 SQLLite 라이브러리를 다운로드 받는다. 다운로드
sqlite-amalgamation 를 다운받고 압축을 푼다.
2, 압축을 풀면 *.lib 파일이 없다 *.def 파일을 이용해서 *.lib 파일을 만든다.
정상적으로 실행 됐따면 sqllite3.lib, sqllite.exe 가 생성 되었을 것이다.
% 수행중에 "mspdb80.dll" 를 찾을 수 없다는 메시지가 나온다면 환경변수 "path" 에
"C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE" 경로를 추가하면 된다.
3, 이제 생성된 라이브러리를 사용 합니다.
typedef int SQLITE_RESULT; #include "SQLLite/sqlite3.h" #pragma comment(lib, "sqllite/sqlite3.lib") int _tmain(int argc, _TCHAR* argv[]) { sqlite3 *db = NULL; SQLITE_RESULT sr = sqlite3_open_v2(":memory:", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if(sr != SQLITE_OK) { printf("open fail (%s)", sqlite3_errmsg(db)); return 0; } char* err_msg = NULL; sqlite3_stmt *stmt = NULL; const char* const query_table = "CREATE TABLE TEST (test_column INTEGER)"; const char* const query_insert = "INSERT INTO TEST VALUES (99)"; const char* const query_select = "SELECT * FROM TEST"; sr = sqlite3_exec(db, query_table, NULL, 0, &err_msg); sr = sqlite3_exec(db, query_insert, NULL, 0, &err_msg); sr = sqlite3_prepare(db, query_select, strlen(query_select), &stmt, NULL); while ( sqlite3_step(stmt) == SQLITE_ROW ) { printf("test_cloum: %d\n", (int)sqlite3_column_int(stmt, 0)); } sqlite3_finalize(stmt); sqlite3_free(err_msg); sqlite3_close(db); return 0; }
'Library' 카테고리의 다른 글
Google ProtoBuf 를 이용하여 C++ 과 Unity(C#) 데이터 타입(패킷) 관리 (1) | 2016.12.07 |
---|---|
오라클 ODBC 설정 하기 (3) | 2012.09.13 |
google test, googlemock test 간략한 사용기 (0) | 2012.01.05 |
TR1 유용한 클래스/함수 (4-2) ... function 템플릿 (0) | 2010.11.23 |
TR1 유용한 클래스/함수 (4-2) ... reference_wrapper 템플릿 (0) | 2010.11.09 |