我必须从我的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应用程序中无效。执行语句时不会抛出任何错误。我的代码中没有发现任何错误。 (据我所知)。有人可以帮助我,为什么它不起作用? 感谢。
答案 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;
}