开发者

Delete All Data with SQLite delete syntax?

I've made a button that removes all the objects in my array, which is shown in my tableView. Then it reloads data and the tableview is empty. But how can I delete all the data from my SQLite database as well, and not just the array? Now the data occurs when I restart. I have tried this:

Button void:

   - (void) deleteAllButton_Clicked:(id)sender {

     [appDelegate removeAllBooks:nil];
     [self.tableView reloadData];


    }

Appdelegate void:

-(void) removeAllBooks:(Book *)bookObj {
 //Delete it from the database.
 [bookObj deleteAllBooks];

 //Remove it from the array.
 [bookArray removeAllObjects];
}

Delete syntax in Book.m

- (void) deleteAllBooks {
 if(de开发者_开发技巧leteStmt == nil) {
  const char *sql = "WHAT DO I HAVE TO DO TO DELETE ALL THE ROWS?";
  if(sqlite3_prepare_v2(database, sql, -1, &deleteStmt, NULL) != SQLITE_OK)
   NSAssert1(0, @"Error while creating delete statement. '%s'", sqlite3_errmsg(database));
 }

 //When binding parameters, index starts from 1 and not zero.
 sqlite3_bind_int(deleteStmt, 1, bookID);

 if (SQLITE_DONE != sqlite3_step(deleteStmt))
  NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(database));

 sqlite3_reset(deleteStmt);
}


Well, the normal SQL syntax would be:

DELETE FROM tablename


If you have a standard primary id column (and you should) you can do

DELETE FROM tablename WHERE id > -1;

And this will delete all rows in the table since there is no id less than 0.


DELETE FROM tablename did not work for me. I was using a sqlite3 database on iPhone, which I assume the poster was, as well. For me to get this to work, I needed to:

DROP table tablename

followed by a CREATE statement, if I wanted the table to still exist (without any rows).

Of course, that requires knowing the right CREATE statement. Using the SQLManager plugin for Firefox quickly reverse-engineered for me the correct CREATE statement to use. I never figured out why DELETE FROM tablename didn't work, but it definitely didn't, in my case.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜