#python #pyqt5 #connection #port #qsqltablemodel
#python #pyqt5 #подключение #порт #qsqltablemodel
Вопрос:
Я пытаюсь использовать QSqlDatabase в своем коде.
Соединение работает хорошо, когда я использую порт 5432 для подключения к моей базе данных PG. Но я не вижу никакого результата при попытке использовать другой порт, мой tableview пуст, но соединение работает. ниже мой код:
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("localhost")
db.databaseName("my_db")
db.setPort(5432)
db.setUserName("postgres")
db.setPassword("postgres")
db.open()
self.model_a = QSqlTableModel(db = db)
self.table.setModel(self.model_a)
self.model_a.setTable("us_table")
self.model_a.select()
Комментарии:
1. Почему вы уверены, что QSqlDatabase была подключена к базе данных? Что
print(db.open())
возвращает?2. @eyllansec да, я уверен. Я пробовал на двух разных postgres. один на порту 5432 и работает, а другой на порту 5433, но не работает. если print db.open() оба подключены, но первый показывает мне результат, а другой нет
3. при использовании порта 5432 model_a.select() возвращает true, иначе при использовании другого порта model_a.select() возвращает false. кто-нибудь знает почему?
4.Используйте
if not self.model_a.select():
print(self.model_a.lastError().text())
, чтобы увидеть, есть ли какие-либо ошибки:5. он не может найти таблицу us_table. это странно, потому что таблица us_table существует, и это две идентичные базы данных на двух разных postgres