Contents

조회 수 14556 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
841 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16385
840 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21247
839 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16485
838 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 11372
837 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 732
836 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
835 Develop 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ file hooni 2013.04.23 12121
834 Develop 정리할 자료. file hooni 2015.07.02 677
833 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 269192
832 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
831 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 27443
830 Develop 알고리즘 성능분석 file hooni 2014.06.24 2959
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71