2013-07-27 1 views
0

나는 데이터베이스에 데이터를 삽입하고자하는 sqlit 데이터베이스를 가지고 있는데, 데이터를 삽입 할 때 삽입 쿼리에 다음 오류가 표시된다. 표시아이폰 응용 프로그램의 sqlit 테이블에 데이터 삽입

- (void) addCoffee { 
    if(addStmt == nil) { 
     const char *sql = "insert into library(userID,contentAddedDateTime,contentType,contentTitle,contentSource,contentDescription,categoryTitle,subCategoryTitle,organizationCode,userName) Values(?,?,?,?,?,?,?,?,?,?)"; 
     if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK) 
      NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database)); 
    } 

    sqlite3_bind_text(addStmt, 1, [userID UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 2, [contentAddedDateTime UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 4, [contentType UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 6, [contentTitle UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 7, [contentSource UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 8, [contentDescription UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 9, [categoryTitle UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 10, [subCategoryTitle UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 11, [organizationCode UTF8String], -1, SQLITE_TRANSIENT); 

    if(SQLITE_DONE != sqlite3_step(addStmt)) 
     NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
    else 
     //SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid 
     coffeeID = sqlite3_last_insert_rowid(database); 

    //Reset the add statement. 
    sqlite3_reset(addStmt); 
} 

오류는 다음과 같습니다

NSInternalInconsistencyException '이유 :'오류 문을 추가 작성하는 동안. 'out of memory' '

답변

0

쿼리하기 전에 데이터베이스를 열어야합니다.

sqlite3_open()을 사용하여 데이터베이스를 엽니 다.

이 줄을 sqlite3_prepare_v2 앞에 두어주십시오.

if (sqlite3_open([databaseFilePath UTF8String], &database) == SQLITE_OK) 

또한 sqlite3_finalize(statement);을 사용하고 sqlite3_close(database); 작업이 완료되면 데이터를 삽입.

관련 문제