это то, что я делаю в заголовкеПроблемы при удалении сырого из таблицы SQLite
static sqlite3 *database = nil;
static sqlite3_stmt *deleteStmt = nil;
@implementation SQLAppDelegate
@synthesize window;
@synthesize navigationController;
@synthesize coffeeArray;
это то, что я использую для удаления сырого
- (void) removeCoffee:(NSNumber *)coffeeObj {
NSLog(@"coffeeObj%@",coffeeObj);
int myInteger = [coffeeObj integerValue];
NSLog(@"myInteger%d",myInteger);
// print this myInteger0
NSLog(@"%@",coffeeArray);
//print object
if (sqlite3_open([self getDBPath], &database) == SQLITE_OK)
{
NSLog(@"myInteger%@",[self getDBPath]);
NSString *sql = [NSString stringWithFormat: @"delete from Coffee where CoffeeID =%d",myInteger];
const char *del_stmt = [sql UTF8String];
NSLog(@"%@",del_stmt); // getting print
// print this delete from Coffee where CoffeeID =0.
sqlite3_prepare_v2(database, del_stmt, -1, & deleteStmt, NULL);
NSLog(@"sqlite3_step(deleteStmt) == SQLITE_DONE%@",sqlite3_step(deleteStmt) == SQLITE_DONE);
// this print null
if (sqlite3_step(deleteStmt) == SQLITE_DONE)
{
//NSLog(@"hi") this is not getting print
} else {
//NSLog(@"hi") this is getting print
}
sqlite3_finalize(deleteStmt);
sqlite3_close(database);
[coffeeArray removeObjectAtIndex:myInteger];
NSLog(@"%@",coffeeArray);
// object is deleted
}
}
моего стола как ниже
table name = Coffee
CoffeeID(INTEGER)=0
CoffeeName(VARCHAR)=Latte
Price(REAL)=2.99
где вещь отлично работает, объект удаляется из массива, и поэтому он не появляется в ячейке таблицы. но его не удаляются из таблицы базы данных, поэтому, когда я снова запускаю приложение, он снова показывает, пожалуйста, помогите, что я делаю неправильно.
Put NSLog, если и еще состояние, когда вы сравните SQLITE_DONE и проверить, что он говорит! –
его не происходит, если условие переходит из него sqlite3_finalize (deleteStmt); sqlite3_close (база данных); –
Проверьте ответ от @Ganapathy, это должна быть проблема подключения. –