В разделе представлены сопутствующие функции и константы модуля sqlite3
с их описанием.
sqlite3
:sqlite3.version
- Версия модуля как строка (устарел с Python 3.12),sqlite3.version_info
- Версия модуля, как кортеж чисел (устарел с Python 3.12),sqlite3.sqlite_version
- Версия SQLite как строка,sqlite3.sqlite_version_info
- Версия SQLite, как кортеж чисел,sqlite3.complete_statement()
- Определяет,что SQL строка содержит команды оканчивающиеся ';',sqlite3.enable_callback_tracebacks()
- Включает трассировку в пользовательских функциях,sqlite3
:sqlite3.LEGACY_TRANSACTION_CONTROL
- Константа управления транзакциями в старом стиле (новое в Python 3.12),sqlite3.PARSE_DECLTYPES
- Константа для поиска функции конвертера по типу поля таблицы,sqlite3.PARSE_COLNAMES
- Константа для поиска функции конвертера по имени поля таблицы,sqlite3.SQLITE_DBCONFIG_*
- Константы используемые с методами Connection.setconfig()
и Connection.getconfig()
(новое с Python 3.12).sqlite3
sqlite3.version
:Атрибут модуля sqlite3.version
возвращает номер версии этого модуля в виде строки. Это не версия библиотеки SQLite
!
Устарел с Python 3.12, будет удалена в Python 3.14: эта константа используется для отражения номера версии пакета
pysqlite
, сторонней библиотеки, которая использовалась для внесения изменений в sqlite3. Сегодня это не несет никакого смысла и практической ценности.
sqlite3.version_info
:Атрибут модуля sqlite3.version_info
возвращает номер версии этого модуля, как кортеж целых чисел. Это не версия библиотеки SQLite
.
Устарел с Python 3.12, будет удалена в Python 3.14: эта константа используется для отражения номера версии пакета
pysqlite
, сторонней библиотеки, которая использовалась для внесения изменений в sqlite3. Сегодня это не несет никакого смысла и практической ценности.
sqlite3.sqlite_version
:Атрибут sqlite3.sqlite_version
возвращает номер версии библиотеки SQLite времени выполнения в виде строки.
sqlite3.sqlite_version_info
:Атрибут sqlite3.sqlite_version_info
возвращает номер версии библиотеки SQLite времени выполнения в виде набора целых чисел.
sqlite3.complete_statement(sql)
:Метод sqlite3.complete_statement()
возвращает True
, если строка SQL содержит один или несколько полных операторов SQL, оканчивающихся точкой с запятой ';'
.
Метод не проверяет синтаксическую правильность SQL, а только отсутствие открытых строковых литералов и то, что оператор завершается точкой с запятой.
Это может быть использовано для создания оболочки для SQLite, как в следующем примере:
# Минимальная оболочка SQLite для экспериментов import sqlite3 con = sqlite3.connect(":memory:") con.isolation_level = None cur = con.cursor() buffer = "" print("Введите команды SQL для выполнения в sqlite3.") print("Введите пустую строку для выхода.") while True: line = input() if line == "": break buffer += line if sqlite3.complete_statement(buffer): try: buffer = buffer.strip() cur.execute(buffer) if buffer.lstrip().upper().startswith("SELECT"): print(cur.fetchall()) except sqlite3.Error as e: print("An error occurred:", e.args[0]) buffer = "" con.close()
sqlite3.enable_callback_tracebacks(flag)
:Метод sqlite3.enable_callback_tracebacks()
По умолчанию модуль не выдает никаких трассировок в пользовательских функциях, агрегатах, конвертерах, обратных вызовах авторизатора и т. д.
Если необходимо их отладить, то можно вызвать функцию sqlite3.enable_callback_tracebacks()
с флагом, установленным в flag=True
. После этого получим обратные вызовы от обратных вызовов на sys.stderr
.
Используйте False
, чтобы снова отключить эту функцию.
sqlite3
sqlite3.LEGACY_TRANSACTION_CONTROL
:Новое в Python 3.12.
Константа sqlite3.LEGACY_TRANSACTION_CONTROL
управляет транзакциями в старом стиле (до Python 3.12) Эту константу необходимо присвоить атрибуту Connection.autocommit
, чтобы выбрать поведение транзакций используемое до Python 3.12.
Дополнительную информацию смотрите в разделе "Управление транзакциями...".
sqlite3.PARSE_DECLTYPES
:Константа sqlite3.PARSE_DECLTYPES
предназначена для использования с параметром detect_types
функции sqlite3.connect()
.
Установка sqlite3.PARSE_DECLTYPES
аргументу define_types
, заставляет модуль sqlite3 анализировать объявленный тип для каждого возвращаемого столбца. Модуль будет анализировать первое слово объявленного типа. Другими словами в строке integer primary key
он будет анализировать integer
или для number(10)
он будет анализировать number
.
Типы объявляются при создании таблицы базы данных. Модуль sqlite3 будет искать функцию конвертера, используя первое слово объявленного типа в качестве ключа словаря конвертера. Например:
CREATE TABLE test( i integer primary key, !-- будет искать конвертер с именем "integer" p point, !-- будет искать конвертер с именем "point" n number(10) !-- будет искать конвертер с именем "number" )
Этот константу можно комбинировать с sqlite3.PARSE_COLNAMES
, используя побитовый оператор или |
.
sqlite3.PARSE_COLNAMES
:Константа sqlite3.PARSE_COLNAMES
предназначена для использования с аргументом detect_types
функции sqlite3.connect()
.
Установка sqlite3.PARSE_COLNAMES
аргументу define_types
заставляет интерфейс SQLite анализировать имя столбца для каждого возвращаемого столбца. Он будет искать функцию преобразователя, используя имя типа, полученное из имени столбца запроса, в качестве ключа словаря преобразователя. Имя типа должно быть заключено в квадратные скобки ([]), например, [mytype]
.
!-- будет искать конвертер "point" SELECT p as "p [point]" FROM test;
Эту константу можно комбинировать с sqlite3.PARSE_DECLTYPES
, используя побитовый оператор или |
.
sqlite3.SQLITE_DBCONFIG_DEFENSIVE
:sqlite3.SQLITE_DBCONFIG_DQS_DDL
:sqlite3.SQLITE_DBCONFIG_DQS_DML
:sqlite3.SQLITE_DBCONFIG_ENABLE_FKEY
:sqlite3.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
:sqlite3.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
:sqlite3.SQLITE_DBCONFIG_ENABLE_QPSG
:sqlite3.SQLITE_DBCONFIG_ENABLE_TRIGGER
:sqlite3.SQLITE_DBCONFIG_ENABLE_VIEW
:sqlite3.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE
:sqlite3.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
:sqlite3.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
:sqlite3.SQLITE_DBCONFIG_RESET_DATABASE
:sqlite3.SQLITE_DBCONFIG_TRIGGER_EQP
:sqlite3.SQLITE_DBCONFIG_TRUSTED_SCHEMA
:sqlite3.SQLITE_DBCONFIG_WRITABLE_SCHEMA
:Новое в Python 3.12.
Эти константы используются для методов Connection.setconfig()
и Connection.getconfig()
.
Доступность этих констант зависит от версии SQLite Python, с которой был скомпилирован.