Pyqt5: база данных QSqlDatabase («QPSQL») не работает на порту, отличном от 5432

#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