ios Development를 처음 사용합니다. 테이블에서 레코드를 삭제하도록 도와 줄 수 있습니까? 데이터베이스와 쿼리가 정상적으로 보인다. 하지만 왜 레코드를 지우지 않는지 모르겠습니다. 내 콘솔에서 nslog "profile deleted"를 볼 수 있습니다. 미리 감사드립니다.sqlite 데이터베이스에서 레코드 삭제
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
self.str_databasePath = [documentsDirectory stringByAppendingPathComponent:@"MY_database.sqlite"];
sqlite3 *database = nil;
if (sqlite3_open([self.str_databasePath UTF8String], &database) == SQLITE_OK)
{
NSLog(@"database opened : %@", profileType);
const char* sqlStatement;
if([profilerType isEqualToString:@"personal"]){
sqlStatement = "DELETE FROM TABLE1 where profile_type = 'OWN_PERSONAL'";
}else if([profilerType isEqualToString:@"corporate"]){
sqlStatement = "DELETE FROM TABLE2 where profile_type = 'BANK_PROFILE'";
}
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &statement, NULL) == SQLITE_OK)
{
NSLog(@"profile deleted ");
return YES;
}else{
NSAssert1(0,@"Error: Failed to prepare statement with message %s '.", sqlite3_errmsg(database));
}
// Finalize and close database.
sqlite3_finalize(statement);
sqlite3_close(database);
}
return NO;
핵심 데이터 프레임 워크를 살펴 보는 것이 좋습니다. 아마 SQL 대신 직접적으로 다루는 것이 더 좋은 옵션 일 것입니다. – HeikoG
HeikoG 감사합니다.하지만 자세히 설명해 주시겠습니까? – dinesh