обновить базу данных, используя в sqlite - PullRequest
1 голос
/ 26 декабря 2011

Я работаю над запросом на обновление и использую библиотеку Билла Вайнмана для взаимодействия с базой данных sqlite, поэтому я хочу обновить базу данных, но нативный код обновляет только данные по идентификатору сценария, но я хочу обновить уважение еще на три значения, и яне могу понять, как я могу это сделать, пожалуйста, помогите мне.TNX много.

это метод, который вызывается объектом контроллера, затем проверяя значение, которым я управляю, вставляя и обновляя параметр

// Method to insert Scenario Product detail
- (void) insertScenarioProductAttribute: (NSMutableDictionary*) getRecord andOldProductAttribute:(NSDictionary*) oldRecord {
    // NSLog(@"%s", __FUNCTION__);

    self.tableName = ktnt_scenarioproductTableName;
    NSNumber* _checkScenarioid = [self valueFromQuery:@"select scenarioid from tnt_scenarioproduct WHERE scenarioid = ? AND weekvalue = ? AND productid = ?",
                                  [oldRecord objectForKey:@"scenarioid"], [oldRecord objectForKey:@"weekvalue"], [oldRecord objectForKey:@"productid"]];
    if (_checkScenarioid) {
        [self updateRow:getRecord :_checkScenarioid];
    } else {
        [self insertRow:getRecord];     // indicate that it's a new row
    }
}

, затем этим методом я обновляю данные, но это было записано только с использованиемодно значение «идентификатор сценария», но в этом случае все мои данные обновляются, чего я не хочу

- (void) updateRow:(NSDictionary *) record:(NSNumber *) rowID {
     // NSLog(@"%s", __FUNCTION__);
    int dictSize = [record count];

    // the values array is used as the argument list for bindSQL
    id keys[dictSize];  // not used, just a side-effect of getObjects:andKeys
    id values[dictSize + 1];
    [record getObjects:values andKeys:keys];    // convenient for the C array
    values[dictSize] = rowID;

    NSString * query = [NSString stringWithFormat:@"update %@ set %@ = ? where scenarioid = ?",
                        tableName,
                        [[record allKeys] componentsJoinedByString:@" = ?, "]];

    [self bindSQL:[query UTF8String] arguments:(va_list)values];
    sqlite3_step(statement);
    sqlite3_finalize(statement);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...