带有半冒号的Sqlite多语句无法在iOS应用程序中运行

时间:2016-05-31 10:13:17

标签: ios iphone database sqlite

我必须从我的iOs应用程序更新sqlite数据库中的多个语句。因为我写了以下字符串。

query = @"UPDATE channels set sts = 'A' , isowner = '1' WHERE channelid=6798;UPDATE channels set sts = 'A' , isowner = '1', srl = '175' WHERE channelid=6795;";
NSLog(@"query %@",query); 
[dbManager executeQuery:query];

我用半冒号创建了一个字符串/ statment字符串。它在sqlite浏览器/编辑器中完美运行,但在iOS应用程序中无效。执行语句时不会抛出任何错误。我的代码中没有发现任何错误。 (据我所知)。有人可以帮助我,为什么它不起作用? 感谢。

1 个答案:

答案 0 :(得分:3)

我用这个搜索并解决了它:

- (BOOL)executeBatch:(NSString *)sql error:(NSError**)error
{
    char* errorOutput;

    sqlite3 *sqlite3Database;

    // Set the database file path.
    NSString *databasePath = [self.documentsDirectory stringByAppendingPathComponent:self.databaseFilename];

    BOOL openDatabaseResult = sqlite3_open([databasePath UTF8String], &sqlite3Database);

    if(openDatabaseResult == SQLITE_OK)
    {
        int responseCode = sqlite3_exec(sqlite3Database, [sql UTF8String], NULL, NULL, &errorOutput);

        if (errorOutput != nil)
        {
            *error = [NSError errorWithDomain:[NSString stringWithUTF8String:errorOutput]
                                         code:responseCode
                                     userInfo:nil];
            return false;
        }
    }
    return true;
}