Пример #1
0
def execute_pull(api, conn, query, params, columns, batch_size=10):
    cursor = conn.cursor()

    if dbms == 'oracle':
        query, query_params = sch_client.prepare_query(query, params, ':0')
        cursor.execute(query, query_params)
    else:
        query, query_params = sch_client.prepare_query(query, params)
        cursor.execute(query, *query_params)

    def iterate():
        return cursor.fetchone()

    return sch_client.set_residents_batch(api, iterate, columns, params, batch_size)
Пример #2
0
            resident = next(reader)
        except StopIteration:
            return None

        resident_dict = sch_client.FunctionDict(resident, get_field_value)
        resident += sch_client.get_calculated_columns(calculated_columns, resident_dict, encoding)
        if deactivate_missing:
            resident_id, instance_id = get_resident_instance_ids(resident)
            if resident_id and instance_id:
                if instance_id in resident_ids:
                    resident_ids[instance_id].append(resident_id)
                else:
                    resident_ids[instance_id] = [resident_id]
        return resident

    num_updated, num_skipped, missing_records, principals_updated = sch_client.set_residents_batch(api, iterate, columns, {}, 10)

    num_deactivated = 0
    if deactivate_missing:
        for instance in instances:
            instance_id = instance['id']
            if instance_id in resident_ids and len(resident_ids[instance_id]) > 0:
                del instance['id']
                api.printme("deactivating records for", ' ')
                for key in instance['key']:
                    api.printme(key + "='" + instance['key'][key], "' ")
                api.printme()

                result = api.set_residents_inactive(resident_ids[instance_id], instance['key'])
                num_deactivated += result['updated']