Выделение соответствий в Vim по инвертированному шаблону

В документации из execute упоминается, что метод возвращает итератор с результатами для каждого запроса при multi=True. Кажется, что запросы ничего не делают, пока итератор не будет обработан, независимо от commit(). Однако операторы CREATE не дают никаких результатов, и попытка перебрать возвращаемое значение execute приводит к исключению: generator raised StopIteration. Это связано с ошибкой в ​​модуле коннектора и исправлено в версии 8.0.13 с поддержкой python 3.7.

Решение теперь состоит в том, чтобы всегда перебирать возвращаемое значение execute, даже если никаких ожидаемых данных не ожидается, и обновлять соединительный модуль. Если обновление невозможно, можно отследить неудачную итерацию и продолжить.

Фиксированный код (включая часть для более ранних версий соединительного модуля) теперь выглядит примерно так:

try:
    results = cursor.execute(script, multi=True)
    try:
        for result in results:
            pass
    except Exception as e:
        pass

    warnings = cursor.fetchwarnings()
    if warnings:
        for warning in warnings:
            # handle warning

    connection.commit()
    cursor.close()
    connection.close()

except mysql.connector.Error as err:
    # handle error

5
задан Ricardo 21 April 2009 в 16:46
поделиться

1 ответ

Ну, вы можете сделать что-то вроде:

:match myBaseHighlight /foo/
:2match myGroup /./

где myBaseHighlight определяется как ваш внешний вид по умолчанию - белый на черном или что-то еще. : match переопределит : 2match , поэтому все, кроме / foo / , получит выделение myGroup .

3
ответ дан 15 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: