В приведенном ниже коде работает код с комментариями.Ошибка телефонной книги SQLite
Но с использованием метода saveData
DBMgr
Результаты класса «Не удалось добавить контакт».
Я хочу видеть вместо этого «Contact added».
-(void) saveData{
NSString *insSQL = [NSString stringWithFormat:@"INSERT INTO CONTACTS (name,address,phone) VALUES (\"%@\",\"%@\",\"%@\")",name.text,address.text,phone.text];
DBMgr *dbmgr = [DBMgr alloc];
if([dbmgr saveData:insSQL]== 0){
status.text = @"Contact added";
}else if([dbmgr saveData:insSQL]== 1){
[email protected]"Failded to add contact";
}
/*sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
if(sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO CONTACTS (name,address,phone) VALUES (\"%@\",\"%@\",\"%@\")",name.text,address.text,phone.text];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
if(sqlite3_step(statement) == SQLITE_DONE)
{
status.text = @"Contact added";
name.text = @"";
address.text = @"";
phone.text = @"";
}else{
[email protected]"Failded to add contact";
}
sqlite3_finalize(statement);
sqlite3_close(contactDB);
}*/
}
-(NSInteger) saveData:(NSString *) querySQL{
NSInteger result;
sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
if(sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *insertSQL = querySQL;
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
if(sqlite3_step(statement) == SQLITE_DONE)
{
result = 0;
}else{
result = 1;
}
sqlite3_finalize(statement);
sqlite3_close(contactDB);
}
return result;
}
Я не знаю, что такое класс «DBMgr», но, возможно, вам нужно сделать «DBMgr» dbmgr = [[DBMgr alloc] init]; 'вместо просто« alloc ». – Anna