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



Posted by six605
,