我有一个应用程序,我希望它创建一个表并在刚开始时插入几个值。
我创建数据库表的代码:
- (void) crearTablaConf {
sqlite3 *turutaDB;
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *databasePath = [[dirPath objectAtIndex:0] stringByAppendingPathComponent:@"turuta.db"];
NSLog(@"path de la bbdd: %@", databasePath);
if(sqlite3_open([databasePath UTF8String], &turutaDB)==SQLITE_OK) {
NSLog(@"2 Base de datos creada y abierta con exito");
} else {
NSLog(@"Ha fallado la apertura de la bbdd");
}
sqlite3_stmt *sentenciaTablaConf;
NSString *queryTablaConf = @"CREATE TABLE IF NOT EXISTS configuraciones (id int(11) NOT NULL, idioma int(1),fecha date,PRIMARY KEY (id));";
if(sqlite3_prepare_v2(turutaDB, [queryTablaConf UTF8String], -1, &sentenciaTablaConf, NULL)==SQLITE_OK){
NSLog(@"Consulta preparada ok"); //NO ERROR HERE
} else {
NSLog(@"Consulta ha fallado al preparar: %s", sqlite3_errmsg(turutaDB));
}
sqlite3_finalize(sentenciaTablaConf);
sqlite3_stmt *sentenciaIniciar;
NSString *queryIniciar = @"insert into configuraciones (id, idioma, fecha) values ('1','0',NULL);";
if(sqlite3_prepare_v2(turutaDB, [queryIniciar UTF8String], -1, &sentenciaIniciar, NULL)==SQLITE_OK){
NSLog(@"Consulta preparada ok");
} else {
NSLog(@"Consulta ha fallado al preparar: %s", sqlite3_errmsg(turutaDB));
} //HERE, SAYS "NO SUCH TABLE: CONFIGURACIONES"
sqlite3_finalize(sentenciaIniciar);
}
我检查了自动提交,并且打开了,所以我找不到错误在哪里。