С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282

Не заполняется таблица в БД

30.01.2025, 12:58. Показов 1422. Ответов 4

Студворк — интернет-сервис помощи студентам
Приветствую Друзья!!!

Объясните пожалуйста мне, один нюанс в табличной модели. Я уже который день голову ломаю
Начну с самого начала вернувшись обратно к своей любимой теме, "Создание СУБД"..... Изучаю я по книге: Прохорёнок Н.А. Дронов В.А. - Python 3 и PyQt6 Разработка приложений.

там указан листинг:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from PyQt6 import QtCore, QtGui, QtWidgets, QtSql
import sys
def addRecord():
    if stm.value("category") == []:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())
 
def deleteRecord():
    # Удаляем запись из модели
    stm.removeRecord(tv.currentIndex().row())
    stm.select
 
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("Добавление и удаление записи")
# Устанавливаем соединение с базой данных
con = QtSql.QSqlDatabase.addDatabase("QSQLITE")
con.setDatabaseName("data.sqlite")
con.open()
# Создаем модель
stm = QtSql.QSqlTableModel(parent=window)
stm.setTable("category")
stm.sort(1, QtCore.Qt.SortOrder.AscendingOrder)
stm.select()
# Задает заголовки
stm.setHeaderData(0, QtCore.Qt.Orientation.Horizontal, "Номер записи")
stm.setHeaderData(1, QtCore.Qt.Orientation.Horizontal, "Категория")
vbox = QtWidgets.QVBoxLayout()
tv = QtWidgets.QTableView()
tv.setModel(stm)
tv.setColumnWidth(1, 60)
tv.setColumnWidth(2, 150)
vbox.addWidget(tv)
btnAdd = QtWidgets.QPushButton("&Добавить запись")
btnAdd.clicked.connect(addRecord)
vbox.addWidget(btnAdd)
btnDel = QtWidgets.QPushButton("&Удалить запись")
btnDel.clicked.connect(deleteRecord)
vbox.addWidget(btnDel)
window.setLayout(vbox)
window.resize(400, 250)
window.show()
sys.exit(app.exec())
Проблема в том, что если таблице нет записей то при нажатии на кнопке, "&Добавить запись", таблица не переходит в режим редактирования и вsходит сообщение:
Process finished with exit code -1073740791 (0xC0000409)
. И как не меняй функцию:
"addRecord"

Python
1
2
3
if stm.value("category") == []:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())
или
Python
1
2
3
if stm.Null == True:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())
все равно выходит сообщение:
Process finished with exit code -1073740791 (0xC0000409)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2025, 12:58
Ответы с готовыми решениями:

Таблица заполняется на одних компьютерах и не заполняется на других
Всем доброго дня. Столкнулся с довольно странной проблемой. Довольно долго пользуюсь базой данных, в которой показатели за год...

Таблица не заполняется
Вот код using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; ...

Таблица не заполняется
Добрый день. Сегодня начал заниматся с xml. И написал такой код с значениями для таблицы: <?xml version="1.0"?> ...

4
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
30.01.2025, 14:16
mikkijon, у QSqlTableModel нет метода value(). И свойства Null у него тоже нет.
А insertRecord() принимает два аргумента а не один.
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
30.01.2025, 14:23  [ТС]
anton78spb, в листинге указан один..... Можно поподробнее
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
30.01.2025, 14:35
Цитата Сообщение от mikkijon Посмотреть сообщение
в листинге указан один..... Можно поподробнее
Ссылка на официальную документацию
Главу и страницу книжки напишите, где этот код напечатан.

Это исходники PyQt.
Python
1
2
class QSqlTableModel(QSqlQueryModel):
    def insertRecord(self, row: int, record: QSqlRecord) -> bool: ...
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
30.01.2025, 14:42
Вот скрин из книги с описанием inserRecord. Указано два параметра.

Вот место с листингом. Там тоже два параметра.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2025, 14:42
Помогаю со студенческими работами здесь

Не заполняется таблица
Таблица СоставЗакупки, конкретно столбец КодОперации, перестала заполняться и выскакивала ошибка: "Невозможно добавление или изменение...

Не заполняется таблица
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include...

Не заполняется таблица
не заполняется таблица, требует все время нажатие ok, хотя с циклом for вроде работает. вот часть кода, помогите разобраться. спасибо. ...

DataAdupter: не заполняется таблица
Всем привет, ADO.NET использую совсем недавно. Никак не могу понять в чем ошибка. Вот мой код public static string...

Почему не заполняется таблица?
Добрый вечер товарищи!!! Вот фрагмент кода, который записывает в таблицу (датагрид) данные из текстбоксов!Я не могу понять почему при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru