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)
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']