SQLite插件在模拟器中工作,但在设备上不工作

时间:2012-02-13 13:45:17

标签: xcode sqlite ios5

这是我调用并传递一个变量的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);
}
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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