2011-04-08 138 views
0

請幫助:-) 下面的代碼應該刪除一條記錄。它似乎執行OK,沒有錯誤消息,NSLog顯示「記錄已刪除」消息。但是記錄不會被刪除。我用終端檢查,確實刪除的記錄仍然存在。令人費解的部分是,我有非常類似的代碼來添加和計數記錄,並且它們似乎都工作......我不是SQL專家,所以我希望這羣人中的專家能夠看到錯誤。SQL刪除似乎沒有工作

感謝

(void) deleteRecord 
{ 
    const char *dbpath = [databasePath UTF8String]; 
    sqlite3_stmt *statement; 

    if (sqlite3_open(dbpath, &wfDataBase) == SQLITE_OK) 
    { 
     NSLog(@"About to Delete Record %d",currentID); 
     NSString *querySQL = [NSString stringWithFormat: @"DELETE from wfDataBase WHERE ID = %d", currentID]; 
     const char *query_stmt = [querySQL UTF8String]; 

     if (sqlite3_prepare_v2(wfDataBase, query_stmt, -1, &statement, NULL) == SQLITE_OK) 
      l_status.text = @"Record Deleted";    
     else 
      l_status.text = @"Can't Delete"; 

     sqlite3_finalize(statement); 
     sqlite3_close(wfDataBase); 
    }  
} 

回答

0

你確定你destroying它(sqlite3_finalize(statement))之前有evaluatedsqlite3_step(statement))的compiled聲明(sqlite3_prepare_v2(wfDataBase, query_stmt, -1, &statement, NULL))?

注意:我不是SQLite的專家(的確我對SQLite一無所知),但我想這是問題的原因。

+0

糟糕...這確實是問題..步驟聲明從未執行......謝謝 – 2011-04-08 00:42:32