【问题标题】:SQLite insert works in simulator but not on deviceSQLite 插入适用于模拟器,但不适用于设备
【发布时间】:2012-02-13 13:45:17
【问题描述】:

这是我调用并传递一个变量的 SQLite 代码。问题出在哪里?

-(IBAction)insertPet:(NSString *) name{

NSString *query = [NSString stringWithFormat:@"Insert into pet (name) values ('%@');", name];
sqlite3_stmt *statement;

NSLog(@"1 - %@",query);

if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)==SQLITE_OK)
{

    NSLog(@"2 - %@",query);

    if(SQLITE_DONE == sqlite3_step(statement)){

        NSLog(@"Query - %@",query);
    }
    sqlite3_finalize(statement);
}
}

【问题讨论】:

  • NSLog(@"1 - %@",query) 和 NSLog(@"2 - %@",query) 通过。无法到达 NSLog(@"Query - %@",query)。
  • 如果您能告诉我们错误信息是什么,将会很有帮助...

标签: xcode sqlite ios5


【解决方案1】:

我的猜测是您的数据库位于应用程序包中。如果是这种情况,您必须创建数据库的可写副本才能执行更改数据库的查询(如 INSERT 或 UPDATE)。最流行的做法是将数据库从捆绑包复制到 Documents 文件夹。

【讨论】:

【解决方案2】:

对我有用的是从您的设备中删除应用程序,重新启动设备,在 Xcode 中清理应用程序然后再次加载它,同时检查数据库中是否选择了目标成员。

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 2013-07-13
    • 1970-01-01
    • 2018-10-26
    • 2012-11-01
    • 2011-03-08
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多