Шаг 164.
Библиотека PyQt5. Работа с базами данных. Получение сведений о структуре таблицы. Получение сведений об ошибке
На этом шаге мы рассмотрим получение информации об ошибке.
Сведения об ошибке, возникшей при работе с базой данных, представляются экземпляром класса QSqlError. Выяснить, что за ошибка
произошла и каковы ее причины, позволят следующие методы вышеупомянутого класса:
- type () - возвращает код ошибки в виде одного из следующих атрибутов класса QSqlError:
- NoError (или 0) - никакой ошибки не возникло;
- ConnectionError (или 1) - ошибка соединения с базой данных;
- StatementError (или 2) - ошибка в коде SQL-запроса;
- TransactionError (или 3) - ошибка в обработке транзакции;
- UnknownError (или 4) - ошибка неустановленной природы;
- text () - возвращает полное текстовое описание ошибки (фактически - значения, возвращаемые методами databaseText() и
driverText(), объединенные в одну строку);
- databaseText () - возвращает текстовое описание ошибки, сгенерированное базой данных;
- driverText () - возвращает текстовое описание ошибки, сгенерированное драйвером базы данных, который входит в состав PyQt;
- nativeErrorCode () - возвращает строковый код ошибки, специфический для выбранного формата баз данных.
Пример:
from PyQt5 import QtWidgets, QtSql
import sys
# Создаем объект приложения, иначе поддержка баз данных не будет работать
арр = QtWidgets.QApplication(sys.argv)
con = QtSql.QSqlDatabase.addDatabase('QSQLITE')
con.setDatabaseName('c:\\work\\data.sqlite')
if con.open():
# Работаем с базой данных
pass
else:
# Выводим текст описания ошибки
print(con.lastError().text())
Архив с файлом можно взять
здесь.
Рис.1. Результат работы приложения
Полное описание класса QSqlError можно найти на странице
https://doc.qt.io/qt-5/qsqlerror.html.
Со следующего шага мы начнем рассматривать выполнение SQL-запросов.
Предыдущий шаг
Содержание
Следующий шаг