2015-03-02 108 views
0

我正在使用一个过程,涉及与本地数据库的咨询,如果有任何记录保存,并在iphone 4,5和5s,而不是在一个iphone 6,全部用ios 8.1,我希望你的帮助。ios - sqlite访问错误,只能在iPhone 6和6加上失败

example of error in iphone 6

编辑: 我省略了所有的代码

-(int)getCountRowsLogin{ 
NSString *ubicacionDB = [self obtenerBD]; 

if(!(sqlite3_open([ubicacionDB UTF8String], &database) == SQLITE_OK)) 
{ 
    NSLog(@"No se puede conectar con la BD"); 
} 
int numero = 0; 
NSString *query = @"SELECT COUNT(*) FROM Registro"; 
sqlite3_stmt *sentencia; 

if (sqlite3_prepare_v2(database, [query UTF8String], -1, &sentencia, nil) == SQLITE_OK) 
{ 
    while (sqlite3_step(sentencia) == SQLITE_ROW) 
    { 
     int cuenta = sqlite3_column_int(sentencia, 0); 
     numero = cuenta; 
     sqlite3_finalize(sentencia); 
    } 
    sqlite3_close(database); 
} 
return numero; 

}

+1

邮政编码不是图像。谢谢。 – Cesare 2015-03-02 20:50:37

+0

谢谢,有一些想法来解决这个问题? – Ghostnars 2015-03-02 22:03:41

+0

这么多的错误。您关闭但不要打开数据库。如果您阅读任何记录,您只需完成准备好的声明。 – rmaddy 2015-03-02 23:11:25

回答

1

使用fileSystemRepresentation而不是UTF8字符串到一个NSString转换为一个const char *用于在一个 “C” API (如SQLite3)。

+0

我试过但没有解决我的问题,谢谢。问题是sqlite3_finalize(sentencia),因为它在while内部,现在也运行 – Ghostnars 2015-03-03 22:24:40

+0

,我看到你测试sqlite3_open失败,但它不会尽早返回。没有什么可以阻止代码继续尝试使用(未打开的)数据库。我会在NSLog后添加一条return语句(@“No se puede conectar con la BD”); – paddlefish 2015-03-03 23:56:53

+0

谢谢@paddlefish我会尝试 – Ghostnars 2015-03-04 13:31:25