sqlite 데이터베이스가 있는데 새 단어를 추가하고 있습니다. 문제는 응용 프로그램을 다시 시작한 후에 만 테이블에 추가 된 것을 볼 수 있다는 것입니다. "SELECT"문은 응용 프로그램을 다시 시작하기 전에 새로 추가 된 요소를 "보지"않습니다.SQLite 데이터베이스 - 업데이트를 볼 수 없습니다.
왜 이런 일이 발생할 수 있습니까?
나는 어떤 종류의 사전을 만들고 있습니다.
const char *sql_query = "INSERT INTO words(word) VALUES(?)";
if(sqlite3_prepare_v2(database, sql_query, -1, &addWordsStmt, NULL) != SQLITE_OK)
{
return FALSE;
}
sqlite3_bind_text(addWordsStmt, 1, [ word UTF8String], -1, SQLITE_TRANSIENT);
if(sqlite3_step(addWordsStmt) != SQLITE_DONE)
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
sqlite3_reset(addWordsStmt);
sqlite3_finalize(addWordsStmt);
그리고 여기 내 검색 코드는 다음과 같습니다 : 여기에 내가 새 항목을 추가하는 방법입니다
const char *sql_query = "SELECT word FROM words WHERE id=?";
if(sqlite3_prepare_v2(database, sql_query, -1, &getWordsStmt, NULL) != SQLITE_OK)
{
return;
}
sqlite3_bind_int(getWordsStmt, 1, wordid);
if(sqlite3_step(getWordsStmt) != SQLITE_ROW)
{
NSLog(@"Error while getting data. '%s'", sqlite3_errmsg(database));
sqlite3_reset(getWordsStmt);
return;
}
NSString *word = [NSString stringWithUTF8String:(char *)sqlite3_column_text(getWordsStmt, 0)];
sqlite3_reset(getWordsStmt);
sqlite3_finalize(getWordsStmt);
단어를 어떻게 추가 하시겠습니까? 어떻게 그들을 찾고있어? 출처를 표시하십시오! –
나는 모든 단일 sqlite3_ 호출의 결과를 NSLogging 해보고, 모든 것이 기대되는 것을 보았을 것이다. 검색 소스는 어떻게 생겼습니까? –