РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
52 of 711 menu

Метод close класса Result

Метод close класса Result закрывает результат выполнения запроса и освобождает связанные с ним ресурсы, такие как курсор базы данных. После вызова метода результат считается закрытым, и попытка получить из него строки приведет к исключению. Метод не принимает параметров и не возвращает значения.

Закрытие результата особенно полезно при работе с большими наборами данных, когда нужно как можно раньше освободить ресурсы соединения. После закрытия атрибут closed принимает значение True.

Синтаксис

Result.close()

Пример

Давайте выполним запрос и закроем результат методом close:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.execute(text('SELECT 1 AS num')) print(res.closed) res.close() print(res.closed)

Результат выполнения кода:

False True

Пример

Давайте создадим таблицу, наполним ее данными и закроем результат после выборки:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title TEXT, ' 'text TEXT, ' 'status TEXT, ' 'num INTEGER)' )) conn.execute(text( "INSERT INTO articles (title, text, status, num) " "VALUES ('article 1', 'text 1', 'published', 10)" )) conn.execute(text( "INSERT INTO articles (title, text, status, num) " "VALUES ('article 2', 'text 2', 'draft', 20)" )) res = conn.execute(text('SELECT title FROM articles')) rows = res.fetchall() print(rows) res.close() print(res.closed)

Результат выполнения кода:

[('article 1',), ('article 2',)] True

Пример

Давайте попробуем получить строки из уже закрытого результата:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.execute(text('SELECT 1 AS num')) res.close() try: res.fetchone() except Exception as e: print(type(e).__name__)

Результат выполнения кода:

"ResourceClosedError"

Смотрите также

  • класс Result,
    который представляет результат выполнения запроса
  • атрибут closed,
    который показывает, закрыт ли результат
  • метод fetchall,
    который возвращает все строки результата
  • метод fetchone,
    который возвращает одну строку результата
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить