Я пытаюсь создать SQLite DB в Xcode с помощью Objective-c, но у меня возникла проблема с созданием таблицы. Я считаю, что моя функция вставки выполнена правильно, но когда я пытаюсь запустить ее, я получаю следующую ошибку:Ошибка создания SQLite DB в Objective-C
2016-09-20 09: 39: 31.612 Тест [58546: 5169036] Невозможно подготовить заявление: нет такой таблицы : Пользователи
Мой код приведен ниже. Пожалуйста, дайте мне знать, если знаете, что я могу делать неправильно. Благодаря!
[super viewDidLoad];
//do any addtional setup after view load, typically from nib
NSString *docsDir;
NSArray *dirPaths;
//gets the directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];
//Build path to keep database
_databasePath = [[NSString alloc] initWithString:[docsDir stringByAppendingPathComponent:@"Users.db"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if([filemgr fileExistsAtPath:_databasePath] == NO) {
const char *dbPath = [_databasePath UTF8String];
if(sqlite3_open(dbPath, &_DB) == SQLITE_OK) {
char *errorMessage;
const char *sqlStatement = "CREATE TABLLE IF NOT EXIST Users (Username TEXT PRIMARY KEY, PASSWORD TEXT, EMAIL TEXT, null PHONE TEXT, null WINS INTEGER, null LOSSES INTEGER, null BALANCE DECIMAL INTEGER";
if(sqlite3_exec(_DB, sqlStatement, NULL, NULL, &errorMessage) != SQLITE_OK) {
//below creates a popup success message if necessary
UIAlertController * alert= [UIAlertController
alertControllerWithTitle:@"Success"
message:@"Table created"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[alert dismissViewControllerAnimated:YES completion:nil];
}];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];
}
sqlite3_close(_DB);
}
else {
//below creates a popup error message if necessary
UIAlertController * alert= [UIAlertController
alertControllerWithTitle:@"Error"
message:@"Unable to create table"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[alert dismissViewControllerAnimated:YES completion:nil];
}];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];
}
}
}
Извините за любую путаницу, просто для того, чтобы уточнить, что это мой код для создания БД. Я считаю, что в этом проблема, поскольку она говорит, что таблица «Пользователи» не создается при попытке запустить мою вставку. – dgelinas21
где вы работаете? на симуляторе? 1. попытаться сделать чистую сборку и удаление приложения и запустить снова? 2. Если проблема все еще существует, попробуйте запустить запрос выбора перед обновлением, чтобы узнать, существует ли имя таблицы? –