iphone - SQLite 问题 : sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 不工作

标签 iphone objective-c ios sqlite

-(void)myDatabaseFunction
{   
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"HHAuditToolDatabase.sqlite"];
if (sqlite3_open([writableDBPath UTF8String], &database) == SQLITE_OK){
NSLog(@"opening db");
NSString *keyValue;
NSString *sqlStr = @"SELECT * FROM HHAuditTable";
//following if() not working dude!!!!
//its working with !=SQLITE_OK      
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

sqlite3_stmt *addStmt = nil;

if(sqlite3_prepare_v2(database,[sqlStr UTF8String], -1, &addStmt, NULL) != SQLITE_OK){
    NSLog(@"%@",sqlStr);
    while (sqlite3_step(addStmt) == SQLITE_ROW) {


const unsigned char *querry_returns = sqlite3_column_text(addStmt, 0);
        keyValue = [[NSString alloc]initWithUTF8String:(char *) sqlite3_column_text(addStmt, 0)];
        }

        NSLog(@"value from DB = %@",keyValue);

带注释的 if() 不起作用....有些有治愈方法!!!我已经用了 3 个小时了....请想出一个解决方案

最佳答案

您正在打开数据库两次。您应该必须关闭数据库连接,然后必须再次打开数据库。这就是它不起作用的原因。

关于iphone - SQLite 问题 : sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8613208/

相关文章:

ios - 如何从我的应用程序将歌曲/音频文件保存到iPhone设备iTunes?

iphone - 如何将变量添加到url中

iphone - 解析 xml 时 NSCFString appendString 泄漏

ios - 使用自动布局时删除 UILabel 填充/边距

ios - UICollectionView 水平滚动照片库与 swift

ios - 如何获取iOS设备屏幕的高度和宽度

android - Css 不适用于 Iphone

ios - TableView - 标题和部分不正确

ios - 如何优化 UIView 过渡动画?

ios - NSInvalidArgumentException FIRMessaging connectWithCompletion