2011-04-08 136 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