SQLite 간단한 예제
1. 프로젝트 생성
파일 -> 새로 만들기 -> 프로젝트
프로젝트 형식 : Win32
템플릿 : Win32 콘솔 응용 프로그램
응용 프로그램 설정
추가 옵션 : 미리 컴파일된 헤더 체크 해제
2. 프로젝트 속성 설정
Widows 에서 사용하려고 생성한 라이브러리 파일을 특정 폴더에 위치 시킨다.
sqlite3.exp, sqlite3.lib 두개의 파일을 C:\SQLite\SQLiteTest\SQLiteLib 에 위치 시켰다.
SQLiteTest 는 Visual Studio 마법사가 생성한 프로젝트 폴더 이름이다.
Alt+F7 또는 프로젝트->”프로젝트명”속성 을 선택
C/C++ 탭에서 “추가 포함 디렉토리” 에 sqlite 라이브러리 파일이 위치한 폴더 경로를 추가.
링커->일반 -> “추가 라이브러리 디렉터리” 에도 sqlite 라이브러리가 위치한 폴더 경로 추가
링커->입력->”추가 종속성” 에는 사용할 sqlite 라이브러리 이름을 적어 준다.
sqlite3.lib 가 되겠다.
프로젝트에 SQLite Source Code 를 추가 한다.
sqlite-amalgamation-3.6.13.zip 를 받았다면 sqlite3.c, sqlite3.h, sqlite3ext.h 3개의 파일을
프로젝트에 추가 하면 된다.
3. 예제 프로그램 작성
- SQLite 에 접속하여 작업 할 파일에 sqlite3.h 헤더 파일을 include 시킨다.
#include “sqlite3.h”
- callback 함수의 작성
SQLite3 에서 질의를 하여 리턴 받을 데이터가 있을 경우에 callback 함수를 호출하여
데이터를 넘겨주게 되어 있다. 따라서 callback 함수를 작성해 주어야 한다.
#include "sqlite3.h" 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; };
- 소스 파일 작업
sqlite3 *pSQLite3 = NULL; // SQLite DB 객체저장변수 char *szErrMsg = NULL; // Error 발생시메세지를저장하는변수 // 데이터베이스열기: 파일이존재하지않으면생성한다. int rst = sqlite3_open( "test.db", &pSQLite3); if ( rst ) { printf( "Can't open database: %s\n", sqlite3_errmsg( pSQLite3 )); sqlite3_close( pSQLite3 ); pSQLite3 = NULL; } else { printf("Database opened!!\n"); // 테이블생성 rst = sqlite3_exec(pSQLite3, "CREATE TABLE member ( name TEXT(20), age INTEGER )", callback, 0, &szErrMsg); // 데이터삽입 rst = sqlite3_exec(pSQLite3, "INSERT INTO member ( name, age ) values ( 'andy', 20 )", callback, 0, &szErrMsg); // 데이터질의 rst = sqlite3_exec(pSQLite3, "SELECT * FROM member", callback, 0, &szErrMsg); } //객체해제 sqlite3_free( szErrMsg ); sqlite3_close( pSQLite3 );
- 수행 결과
cf) http://neodreamer.tistory.com/128
http://www.joinc.co.kr/modules/moniwiki/wiki.php/SQLite%20Windows