Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2025, 10:46   #1
mikkijon
Пользователь
 
Регистрация: 03.10.2019
Сообщений: 28
По умолчанию Не работает условие if.. then...

Приветствую Друзья!!!
Наконец-то я дошел до своей любимой темы - "Создание Базы Данных". И столкнулся не понятной мне ситуации (который день я потею над ним....) иными словами просто взрыв мозга....
Суть проблемы вот в чем...... Написав код по созданию таблицы (листинг ниже):
Код:
from PyQt6 import QtWidgets, QtSql
import sys

app = QtWidgets.QApplication(sys.argv)
con = QtSql.QSqlDatabase.addDatabase('QSQLITE')
con.setDatabaseName('data.sqlite')
con.open()
# Проверим есть ли в базе данных таблица good, и, если таковой нет,
# создаём её SQL-командой CREATE TABLE
if 'good' not in con.tables():
query = QtSql.QSqlQuery()
query.exec("create table good (id integer primary key autoincrement," + "goodname text, goodcount integer)")
con.close()
При запуске скрипта таблица не создается, но если закомментировать условие:
Цитата:
if 'good' not in con.tables():
Таблица создается. Я знаю многие скажут поставь SQL ниже а в условие напиши Print("Таблица не найдена") или что-то в этом роде. И я с этим соглашусь. Мне просто очень нужно знать на будущее, при каких случаях может не сработать условиях
Цитата:
try... except..., if .... then....
и другие.
Пожалуйста подскажите в чем здесь неправильно (если можно по подробнее). Заранее благодарю Вас!!!
с Уважением Ким Евгений
mikkijon вне форума Ответить с цитированием
Старый 26.01.2025, 14:03   #2
mikkijon
Пользователь
 
Регистрация: 03.10.2019
Сообщений: 28
По умолчанию Не работает условие if.. then...

Приветствую Друзья!!!

Наконец-то я добрался до своей любимой темы - Создание Базы Данных. И уже при создании таблиц в базе данных столкнулся со странной дилеммой, над которой я уже два дня ломаю голову. Проблема вот в чем.. Написав код, который указан ниже:
Код:
from PyQt6 import QtWidgets, QtSql
import sys

app = QtWidgets.QApplication(sys.argv)
con = QtSql.QSqlDatabase.addDatabase('QSQLITE')
con.setDatabaseName('data.sqlite')
con.open()
# Проверим есть ли в базе данных таблица good, и, если таковой нет,
# создаём её SQL-командой CREATE TABLE
if 'good' not in con.tables():
    query = QtSql.QSqlQuery()
    query.exec("create table good (id integer primary key autoincrement," + "goodname text, goodcount integer)")
con.close()
Условие
Цитата:
if 'good' not in con.tables():
не работает а если просто создавать таблицу то все создается без проблем. Многие скажут что можно наоборот условие написать и будут правы..., Но мне нужно знать на будущее, по каким причинам условия if.... then.... , try.... except.... могут не сработать, ведь при компиляции кода не выявляет никаких ошибок.
с Уважением Ким Евгений
mikkijon вне форума Ответить с цитированием
Старый 26.01.2025, 19:05   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Добавил принты для понимания, когда if "не работает".
Код:
if 'good' not in con.tables():
    print("Создаем таблицу good")
    query = QtSql.QSqlQuery()
    query.exec("create table good (id integer primary key autoincrement," + "goodname text, goodcount integer)")
else:
    print("Таблица good уже есть")
Вроде всё работает. Когда таблицы нет, то создается, а когда есть - то выводится соответствующее сообщение.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает условие if() KAMLS Общие вопросы по Java, Java SE, Kotlin 1 17.10.2018 08:02
Условие в PHP - Не работает условие: не выводит сообщение. Ave_Ave_Ave PHP 13 17.06.2016 12:20
Условие не работает Sony_boy Общие вопросы Delphi 2 04.10.2015 08:02
Не работает условие ilyxaaa Общие вопросы Delphi 10 22.09.2014 11:40
Не работает условие!!! VintProg Общие вопросы C/C++ 5 12.08.2011 04:40