2016-03-10 4 views
-1

Возможно ли это, и как бы это сделать, если это так? Информация на эту тему немного разрежена с помощью Google & Поиск стека, лоты в пакетных вставках, но ничего не найдено на пакетных обновлениях.Запрос на повторную запись FMDB

+1

что вы хотите сделать точно? – Hitarth

+0

см. Это http://stackoverflow.com/questions/11563869/update-multiple-rows-with-different-values-in-a-single-sql-query –

+0

Вы можете называть, что ans и другое решение - это то, что вы можете сделать он за цикл. поэтому в одном запросе. поэтому сделайте один общий запрос и используйте его в цикле for. Поэтому вам не нужно писать запрос для обновления каждой записи. – Hitarth

ответ

2

Да, это возможно, если вы вставляете правильный SQL для этого, но ваш вопрос немного расплывчатый.

Вместо того, чтобы пытаться обновить несколько записей в запросе, почему бы вам не использовать очередь транзакций? Передавайте свои запросы в виде массива для этой функции. (требуется, конечно, установить FMDatabase dbQueue)

-(BOOL) executeQueryArray:(NSMutableArray*)queryArray { 

    __block BOOL noErrors = YES; 

    [self.dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) { 

     db.logsErrors = YES; 

     for (NSString* query in queryArray) { 

      if (![db executeUpdate:query]) noErrors = NO; 
     } 

     *rollback = !noErrors; 
    }]; 
    return noErrors;  
} 
Смежные вопросы