Содержание:
- Версия модуля как строка
sqlite3.version
, - Версия модуля, как кортеж чисел
sqlite3.version_info
, - Версия SQLite как строка
sqlite3.sqlite_version
, - Версия SQLite, как кортеж чисел
sqlite3.sqlite_version_info
, - Константа
sqlite3.PARSE_DECLTYPES
, - Константа
sqlite3.PARSE_COLNAMES
, - Определить,что SQL строка содержит команды оканчивающиеся ';'
sqlite3.complete_statement()
, - Включить трассировку в пользовательских функциях
sqlite3.enable_callback_tracebacks()
,
sqlite3.version
:
Атрибут модуля
sqlite3.version
возвращает номер версии этого модуля в виде
строки. Это не версия библиотеки
SQLite
!
sqlite3.version_info
:
Атрибут модуля
sqlite3.version_info
возвращает номер версии этого модуля, как
кортеж целых чисел. Это не версия библиотеки
SQLite
.
sqlite3.sqlite_version
:
Атрибут
sqlite3.sqlite_version
возвращает номер версии библиотеки SQLite времени выполнения в виде
строки.
sqlite3.sqlite_version_info
:
Атрибут
sqlite3.sqlite_version_info
возвращает номер версии библиотеки SQLite времени выполнения в виде набора
целых чисел.
sqlite3.PARSE_DECLTYPES
:
При установке sqlite3.PARSE_DECLTYPES
, модуль sqlite3
анализирует объявленный тип для каждого возвращаемого столбца. Модуль будет анализировать первое слово объявленного типа. Другими словами для integer primary key
он будет анализировать integer
или для number(10)
он будет анализировать number
.
Затем для этого столбца он будет искать в
словаре конвертеров и использовать соответствующую функцию конвертера, зарегистрированную для этого типа.
sqlite3.PARSE_COLNAMES
:
Установка sqlite3.PARSE_COLNAMES
заставляет интерфейс SQLite анализировать имя столбца для каждого возвращаемого столбца. Он будет искать строку, сформированную [mytype]
, а затем решит, что mytype
является типом столбца. Он попытается найти запись mytype
в словаре конвертеров, а затем использовать найденную там функцию конвертера для возврата значения.
Имя столбца, найденное в
Cursor.description
, не включает тип, т.е. если использовать что-то вроде
'as "Expiration date [datetime]"'
в запросе SQL, то будет анализироваться все до первого символа
'['
для имени столбца и убирать предыдущий пробел: имя столбца будет просто
Expiration date
.
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
, чтобы снова отключить эту функцию.