2011-02-21 32 views
5

Cách xóa tất cả bản ghi từ cơ sở dữ liệu SQLite.Cách xóa bản ghi khỏi SQLite cho iPhone

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    } 

Mã này không có tác dụng đối với tôi.

Xin cảm ơn trước.

+0

đâu nó thất bại? Tôi đề nghị kiểm tra các giá trị trả về từ mọi chức năng bạn gọi. Hơn nữa, các truy vấn SQL thường kết thúc bằng dấu chấm phẩy ';', nhưng câu lệnh SQL của bạn thì không. Điều đó có chủ ý không? Liệu SQLite3 cho phép bạn bỏ dấu chấm phẩy? – sarnold

+0

@sarnold tất cả những điều tôi đã kiểm tra và tất cả đều đúng. Và iShu đã cung cấp cho tôi giải pháp và nó đang làm việc cho tôi. Cảm ơn –

Trả lời

4

sqlite3_step, chức năng này yêu cầu sau khi lập báo cáo biên dịch.

sử dụng theo cách này

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
if(SQLITE_DONE != sqlite3_step(compiledStatement))//add this line 
    { 
     NSLog(@"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
     return NO; 
    } 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    } 
Các vấn đề liên quan