2011-04-21 4 views
0

내 iPhone 응용 프로그램에는 두 개의 열이있는 sqlite 데이터베이스가 포함되어 있습니다.iPhone : SQLite 데이터베이스의 열 업데이트 문제

CREATE TABLE "MyTable" ("ID" INTEGER PRIMARY KEY NOT NULL ,"name" VARCHAR,"status" INTEGER) 

프로그래밍을 통해 즉석에서 두 번째 열 "상태"를 업데이트하려고합니다. 다음 쿼리를 사용하려고합니다.

const char *updateStmt = "UPDATE MyTable SET name=?, status=? Where ID=?"; 

sqlite3_stmt *addstateCompiledStmt; 
if (sqlite3_prepare_v2(database, updateStmt, -1, &addstateCompiledStmt, NULL) ==SQLITE_OK) 
        { 
sqlite3_bind_int(addstateCompiledStmt, 2, statusvalue); 
} 

하지만 제가 통과 새 값을 갖는 제 2 열을 갱신하지 않는다. 누가 여기서 무엇이 잘못 될 수 있고 어떤 일을해야 하는지를 저에게 도와 주실 수 있습니까?

감사합니다.

답변

1

모든 "?" 값은 sqlite stament.

참조 용으로 참조하십시오.
http://staging.icodeblog.com/wp-content/uploads/2008/09/dehydrate1.png http://www.scribd.com/doc/11524402/iPhone-Programming-with-SQLite

또는

if (updateStmt == nil) { 

    const char *sql = "update Coffee Set CoffeeName = ?, Price = ? Where CoffeeID = ?"; 
    if(sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK) 
     NSAssert1(0, @"Error while creating update statement. '%s'", sqlite3_errmsg(database)); 
} 

sqlite3_bind_text(updateStmt, 1, [coffeeName UTF8String], -1, SQLITE_TRANSIENT); 
sqlite3_bind_double(updateStmt, 2, [price doubleValue]); 
sqlite3_bind_int(updateStmt, 3, coffeeID); 
if(SQLITE_DONE != sqlite3_step(updateStmt)) 
    NSAssert1(0, @"Error while updating. '%s'", sqlite3_errmsg(database)); 
sqlite3_reset(updateStmt); 
+0

덕분에 많은 Chetan에! – Getsy