2012-07-24 1 views
4

를 얻을.SQLite는 C 인터페이스는 단일 값 결과

명세서를 준비한 후 C 인터페이스를 사용하여이 번호를 얻으려면 어떻게해야합니까?

+0

[무엇을 시도해 봤습니까?] (http://whathaveyoutried.com/) –

+2

빠른 시작 예제를 확인 했습니까? http://www.sqlite.org/quickstart.html – iX3

+0

@ iX3 : 빠른 시작은 좋지만 Select 쿼리는 약간 다릅니다. 행을 가져와야하며 이는 단일 샷이 아니라 프로세스입니다. –

답변

6

데이터베이스 파일을 열고 명령문을 준비하고 단계를 수행하십시오 (결과에 행이 여러 개있는 경우 하나씩 가져와야 함). 열 값을 추출하고 명령문을 완료하고 데이터베이스를 닫습니다. 이 같은

뭔가 :

sqlite3_stmt* stmt = NULL; 

sqlite3* local_db = NULL; 

sqlite3_open("filename.sqlite", &local_db); 

int retval, idx; 
char sql[2048]; 

sprintf(sql, "select Something from Somewhere;"); 

// execute statement 
retval = sqlite3_prepare_v2(local_db, sql, -1, &stmt, 0); 

if(retval) 
{ 
    printf("Selecting data from DB Failed (err_code=%d)\n", retval); 
    return; 
} 

// iterate rows 
idx = 0; 

// for multiple results 
while(1) 
{ 
    // fetch a row's status 
    retval = sqlite3_step(stmt); 

    if(retval == SQLITE_ROW) 
    { 
     Something = 
      (int)sqlite3_column_int(stmt, 0); 
      // or other type - sqlite3_column_text etc. 
     // ... fetch other columns, if there are any 
    } 
    else if(retval == SQLITE_DONE) 
    { 
     break; 
    } 
    else 
    { 
     sqlite3_finalize(stmt); 
     printf("Some error encountered\n"); 
     break; 
    } 
} 

sqlite3_finalize(stmt); 

sqlite3_close(local_db); 

사용이 코드, 모든 API 호출 (오픈, prepare_v2, 단계, 열, 마무리)을 찾습니다.

어렵다면, 처음에는 C에 익숙해 져야합니다.

+1

감사합니다. 방금 쿼리의 첫 번째 행에서 첫 번째 결과를 사용했습니다. – bendu