ios - Sqlite 返回不同的值 - iOS

标签 ios xcode sqlite

以下函数在为相同的“DBName”值调用时返回不同的 bool 值。我期待找到一个副本。第一次尝试有效,第二次尝试无效。我做错了什么吗?

-(BOOL)CheckForDB:(NSString *)dbPath{
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
    if(checkForDB == nil){

        const char *sql = "SELECT  COUNT(*) FROM BookingInfo WHERE DBName = ?";
        if(sqlite3_prepare_v2(database, sql, -1, &checkForDB, NULL) != SQLITE_OK) {
            NSAssert1(0, @"Error while fetching uploaded status. '%s'", sqlite3_errmsg(database));
        }
    }

    sqlite3_bind_text(checkForDB, 1, [dbName UTF8String], -1, SQLITE_TRANSIENT);

             NSLog(@"checking status %@",dbName);
    while(sqlite3_step(checkForDB) == SQLITE_ROW) {



        NSString *status=[NSString stringWithUTF8String:(char *)sqlite3_column_text(checkForDB, 0)];
        return [status boolValue];
    }

    return NO;
    sqlite3_reset(checkForDB);


}else{
    sqlite3_close(database);
  }
}

最佳答案

我找到了解决方案。在调用 return YES 之前,我必须再调用一次 sqlite3_reset(checkForDB)

while(sqlite3_step(checkForDB) == SQLITE_ROW) {



    NSString *status=[NSString stringWithUTF8String:(char *)sqlite3_column_text(checkForDB, 0)];
    sqlite3_reset(checkForDB)
    return [status boolValue];
}

关于ios - Sqlite 返回不同的值 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919583/

相关文章:

xcode - 如何调试来自用户 : [__NSCFNumber localizedStandardCompare:]: unrecognized selector sent to instance 的控制台消息

Xcode:内存使用比较

java - 调用 Rooms inMemoryBuilder 方法时,Room Persistence Library 运行时异常

iphone - 自定义 UICollectionView 布局

iphone - 如何加快 iPhone Simulator 中应用程序的启动速度?

sql - 在Mac OS X 10.9中使用sqlite3

javascript - 无法安装ionic2 SQLite插件

android - 使用 jquery mobile 可以创建什么样的应用程序

iOS 7 autoresizing UITextView with AutoLayout 随机断线

ios - UITextField becomeFirstReponder 不工作