我打开一个QSqlDatabase并加载与db.set [参数名])的参数,-db.open的连接(故障和检查的db.parameter它返回一个空字符串的值时。在其他客户端程序中使用的相同的形式完美的作品....原文
我加载从一个配置文件中的参数。我试图加载它们手动像具有相同的结果db.setUserName(“SomeUser是否”)。调试,检查db.userName()时,我得到了str的'。当然分贝是不开。这可能与环境变化的数据库是开放的?
@pyqtSlot()
def connectionTest(self):
self.lblTestResult.setText("Connecting to MYSQL server........")
self.lblTestResult.setStyleSheet("QLabel{background-color: yellow; color: black}")
testMessage = "Connection Failed"
self.con_string = self.read_db_config()
try:
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName(self.con_string['host'])
db.setUserName(self.con_string['user'])
db.setDatabaseName(self.con_string['database'])
db.setPassword(self.con_string['password'])
ok = db.open()
if ok:
testMessage = "Connection Succeeded"
self.state = True
self.lblTestResult.setStyleSheet("QLabel{background-color: green; color: white}")
else:
self.lblTestResult.setStyleSheet("QLabel{background-color: red; color: white}")
self.lblTestResult.setText(testMessage)
except Exception as err:
self.lblTestResult.setText(err)
finally:
我希望加载的参数和数据库成功打开。我一直在处理这个问题有一段时间了,没有发现什么事情的任何线索。边注:我使用的例外克服关闭程序的不错PyQt5异常处理。
我能够解决以下“本杰明·T”上与“可用,但没有加载驱动程序”中的类似问题通知问题。我复制的libmysql.dll从Python 3.7 / lib目录/站点包文件夹添加到Python 3.7可执行文件夹,并能加载驱动程序并连接到MySQL数据库。