gpt4 book ai didi

ios - 出现错误,因为在执行 [FMDatabaseQueue inDatabase :]? 之后至少有一个打开的结果集

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:52 26 4
gpt4 key购买 nike

在我的应用程序中,有多个线程访问数据库。我使用了 SQLite 包装器 FMDB。

我听说 FMDB 为我提供了通过 FMdatabaseQueue 处理多线程的功能。

因此,我使用它如下:

@property (nonatomic, strong) FMDatabaseQueue *queue;

_queue = [[FMDatabaseQueue alloc] initWithPath:path];


- (BOOL)deleteSchoolDatabase:(NSString *)name anduserId:(NSString*)studentId {

__block BOOL success = NO;

[self.queue inDatabase:^(FMDatabase *db) {

NSString *deleteStudentDBString = [NSString stringWithFormat:@"DELETE FROM user WHERE name=%@ AND studentId=%@",name,studentId,nil];

success = [db executeQuery:deleteStudentDBString];

NSAssert((![db hadError]), [db lastErrorMessage]);

if ([db hadError]) {

DebugLog(@"Error : %@", [db lastErrorMessage]);
success = NO;
}

}];

return success;
}

我也使用上述格式进行抓取,即

[self.queue inDatabase:^(FMDatabase *db) {
//fetch details
}];

但是现在我得到了错误

Warning: there is at least one open result set around after performing [FMDatabaseQueue inDatabase:]
query: 'DELETE FROM user WHERE name='abc' AND studentId='12346';'

我还查看了以下链接: https://groups.google.com/forum/#!topic/fmdb/oeu38he7UvQ

而且我想一旦完成我就会关闭这个系列。仍然,错误正在发生。这只发生在一张 table 上。在其他表中可以从数据库中删除数据。

提前致谢。

最佳答案

我能够解决我的问题。我使用了错误的方法来删除数据。我们需要使用“executeUpdate”来删除数据。因此,请检查您的查询是否正确。

- (BOOL)deleteSchoolDatabase:(NSString *)name anduserId:(NSString*)studentId {

__block BOOL success = NO;

[self.queue inDatabase:^(FMDatabase *db) {

NSString *deleteStudentDBString = [NSString stringWithFormat:@"DELETE FROM user WHERE name=%@ AND studentId=%@",name,studentId,nil];

success = [db executeUpdate:deleteStudentDBString];

NSAssert((![db hadError]), [db lastErrorMessage]);

if ([db hadError]) {

DebugLog(@"Error : %@", [db lastErrorMessage]);
success = NO;
}

}];

return success;
}

谢谢。

关于ios - 出现错误,因为在执行 [FMDatabaseQueue inDatabase :]? 之后至少有一个打开的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41340005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com