Contents

조회 수 14558 댓글 0
Atachment
첨부 '4'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
먼저 프로젝트를 windows based 로 생성합니다.

그다음에 아래와 같이 프레임워크를 우클릭하여 Add -> Existing Frameworks...을 선택합니다.

1.png

그러면 창이 하나 나올텐데 여기에서 libsqlite3.0.dylib를 선택하여 Add버튼을 클릭합니다.

2.png
 
간단하게 작업은 AppDelegate.m 파일에서만 하도록하겠습니다.

먼저 import 부분에 아래 구문을 추가합니다.
#import <sqlite3.h>

그 다음 아래 메소드에 코드를 추가합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
    //도큐먼트 디렉토리 위치를  얻는다.
    NSString *documentsDirectory =
        [NSSearchPathForDirectoriesInDomains(
            NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
    //도큐먼트 위치에 db.sqlite명으로 파일패스 설정
    NSString *filePath =
        [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"];
    
    //데이터베이스를 연결한다.
    //해당 위치에 데이터베이스가 없을경우에는 생성해서 연결한다.
    sqlite3 *database;
    if (sqlite3_open([filePath UTF8String], &database) != SQLITE_OK) {
        sqlite3_close(database);
        NSLog(@"Error");
    }
    
    
    /*
     테이블 생성
     */
    char *sql = "CREATE TABLE IF NOT EXISTS test 
        (no INTEGER PRIMARY KEY NOT NULL, name VARCHAR)";
    
    //sqlite3_exec 쿼리문을 실행할 수 있다.
    if (sqlite3_exec(database, sql, nil,nil,nil) != SQLITE_OK) {
        
        sqlite3_close(database);
        
        NSLog(@"Error");
    }
    
    
    /*
     insert or update
     */
    sqlite3_stmt *insertStatement;
    char *insertSql = "INSERT or REPLACE INTO test (no,name) VALUES(?,?)";
    
    //프리페어스테이트먼트를 사용
    if (sqlite3_prepare_v2(database, insertSql, -1, &insertStatement, NULL)
        == SQLITE_OK){
        
        //?에 데이터를 바인드
        sqlite3_bind_int(insertStatement, 1, 1);
        sqlite3_bind_text(insertStatement, 2,
            [@"test name" UTF8String],  -1, SQLITE_TRANSIENT);
        
        // sql문 실행
        if (sqlite3_step(insertStatement) != SQLITE_DONE) {
            NSLog(@"Error");
            
        }
    }
    
    
    /*
     select
     */
    sqlite3_stmt *selectStatement;
    
    char *selectSql = "SELECT no, name FROM test";
    
    if (sqlite3_prepare_v2(database, selectSql, -1, &selectStatement, NULL)
        == SQLITE_OK) {
         
        // while문을 돌면서 각 레코드의 데이터를 받아서 출력한다.
        while (sqlite3_step(selectStatement)==SQLITE_ROW) {
            int no = sqlite3_column_int(selectStatement, 0);
            NSString *name =
                [NSString stringWithUTF8String:
                    (char *)sqlite3_column_text(selectStatement, 1) ];
            
            NSLog(@"no : %i, name : %@",no,name);
        }            
        
    }        
    
    
    //statement close
    sqlite3_finalize(insertStatement);
    sqlite3_finalize(selectStatement);
    
    //db close
    sqlite3_close(database);
    
    [window makeKeyAndVisible];
    
    return YES;
}

코드는 간략하게 주석을 달았으니 쉽게 이해할 수 있을 꺼라 생각합니다.

혹시 궁금하신 점있으시면 댓글달아주세요.
제가 아는 범위 또는 찾아볼 수 있는 범위안에서 설명해드리겠습니다.

실행을 하면 디버그콘솔창에 아래와 같은 결과가 나옵니다.
참고로 디버그 콘솔창은 커맨드키 + 쉬프트 + r 입니다.

그리고 소스도 올려드리겠습니다.
(별거는 없습니다 ;;)

3.png
 
[출처] 아이폰에서 sqlite사용하기(초간단 예제)|작성자 만쓰
[출처] http://blog.naver.com/rlarlaks21c/50097250975

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
681 Develop [c] 더블(이중) 연결리스트 예제.. file hooni 2013.04.23 7470
680 Develop [c] 시어핀스키 가스킷..(p.582, A.2 - 두번째) hooni 2003.04.23 7477
679 Develop [php] 데이터를 엑셀,워드 형태로 변환할 때 헤더(ms-office) hooni 2013.04.23 7488
678 Develop [chm] 비주얼 C++ 팁 모음 문서 file hooni 2013.04.23 7500
677 Develop [php] 웹 응용프로그램(engines) 모음 file hooni 2013.04.23 7515
676 Develop [chm] 윈도우즈에서 디버깅 기법(Debugging Applications) file hooni 2013.04.23 7527
675 Develop [c] IP 스푸핑(ip spoof) 소스 - 정리해야 함 file hooni 2003.04.23 7545
674 System/OS HTTPS와 SSL 인증서 file hooni 2014.03.11 7546
673 Develop [c++] 초간단 스택 두 가지 방식(class, struct) file hooni 2013.04.23 7553
672 Develop [api] 인스타그램 API Access_Token 발급 방법 (Instagram API) 3 file hooni 2018.04.05 7563
671 Develop [c] 정수를 2진수로 변환 (재귀,비트연산) file hooni 2003.04.23 7581
670 Develop [c] 소켓 스트림 서버/클라이언트 (UDP) file hooni 2013.04.23 7600
Board Pagination Prev 1 ... 37 38 39 40 41 42 43 44 45 46 ... 98 Next
/ 98