Это похоже на действительный сценарий использования, к которому я мог бы добавить вывод значений -lastErrorMessage
и -lastErrorCode
перед выполнением отката, чтобы вы могли понять, что именно пошло не так.
Еще лучше делать эти вызовы после каждого -executeUpdate
, чтобы вы знали, произошла ли ошибка после каждого оператора:
[fmdb beginTransaction];
// Run the following query
BOOL res1 = [fmdb executeUpdate:@"query1"];
if (!res1) {
NSLog(@"Error %d - %@", [fmdb lastErrorMessage], [fmdb lastErrorCode]);
}
BOOL res2 = [fmdb executeUpdate:@"query2"];
if (!res2) {
NSLog(@"Error %d - %@", [fmdb lastErrorMessage], [fmdb lastErrorCode]);
}
if(!res1 || !res2) [fmdb rollback];
else [fmdb commit];