如何使用 FMDB 正确获取 lastRowId?
How can I get lastRowId correctly with FMDB?
如何使用 FMDB 获取 lastRowId?
方法 [db lastRowId] 对我来说总是 returns 0。
最后我发现,可以在连接打开时检索 lastRowId
[_database open];
[_database executeUpdate:<some query>];
int64_t lastInsertRowId = [_database lastInsertRowId];
[_database close];
return lastInsertRowId;
-(NSInteger) executeGetLastInsertID:(NSString*)sql
{
__block NSInteger lastID = -1;
[self.dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
if([db executeUpdate:sql]) {
lastID = (NSInteger)[db lastInsertRowId];
}
}];
return lastID;
}
如何使用 FMDB 获取 lastRowId? 方法 [db lastRowId] 对我来说总是 returns 0。
最后我发现,可以在连接打开时检索 lastRowId
[_database open];
[_database executeUpdate:<some query>];
int64_t lastInsertRowId = [_database lastInsertRowId];
[_database close];
return lastInsertRowId;
-(NSInteger) executeGetLastInsertID:(NSString*)sql
{
__block NSInteger lastID = -1;
[self.dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
if([db executeUpdate:sql]) {
lastID = (NSInteger)[db lastInsertRowId];
}
}];
return lastID;
}