def dbToTableView(self,commandSQL): try: QApplication.processEvents() if QSqlDatabase.contains("qt_sql_default_connection"): db = QSqlDatabase.database("qt_sql_default_connection") else: db = QSqlDatabase.addDatabase("QSQLITE") db.setDatabaseName(self.dbPath) db.open() projectModel = QSqlQueryModel() projectModel.setQuery(commandSQL, db) projectModel.setHeaderData(0, Qt.Horizontal, 'پلاک') projectModel.setHeaderData(1, Qt.Horizontal, 'متقاضی') projectModel.setHeaderData(2, Qt.Horizontal, 'نوع انجام کار') projectModel.setHeaderData(3, Qt.Horizontal, 'تاریخ بازدید') projectModel.setHeaderData(4, Qt.Horizontal, 'ساعت بازدید') projectModel.setHeaderData(5, Qt.Horizontal, 'نقشه بردار') projectModel.setHeaderData(6, Qt.Horizontal, 'نماینده') projectModel.setHeaderData(7, Qt.Horizontal, 'تاریخ ثبت') projectModel.setHeaderData(8, Qt.Horizontal, 'توضیحات') self.ui.tableView_result.setModel(projectModel) self.rowCount = projectModel.rowCount() self.tableResult = projectModel db.close() QApplication.processEvents() except: self.errorM('مشکل در ارتباط با دیتابیس\n {}')
def createDb(self): if QSqlDatabase.contains("qt_sql_default_connection"): self.db = QSqlDatabase.database("qt_sql_default_connection") else: self.db = QSqlDatabase.addDatabase('QSQLITE') self.db.setDatabaseName('database.db') if not self.db.open(): QtWidgets.QMessageBox.critical(None, ("无法打开数据库"), ("creataDb:无法打开数据库"), QtWidgets.QMessageBox.Cancel) return False query = QSqlQuery() query.exec_( "create table user(id int primary key, name varchar(20), password varchar(20),unit varchar(40))" ) query.exec_("insert into user values(1,'1','1','灵寿网电工队')") query.exec_("insert into user values(2,'1','1','安国网电工队')") query.exec_("insert into user values(3,'1','1','肃宁北网电工队')") query.exec_("insert into user values(4,'1','1','行别营网电工队')") query.exec_("insert into user values(5,'1','1','沧西网电工队')") query.exec_("insert into user values(6,'1','1','黄骅南网电工队')") query.exec_("insert into user values(7,'1','1','黄骅港网电工队')") query.exec_("insert into user values(8,'1','1','北港电务电力工队')") query.exec_("insert into user values(9,'1','1','神港电务电力工队')") self.db.close() return True
def try_connect_sql(table_model): if QSqlDatabase.contains("qt_sql_default_connection"): database = QSqlDatabase.database("qt_sql_default_connection") else: database = QSqlDatabase.addDatabase('QSQLITE') database.setDatabaseName('test.db') if not database.open(): QMessageBox.critical(table_model,'警告','数据库链接异常',QMessageBox.Ok|QMessageBox.Cancel,QMessageBox.Ok) return database
def db_connect(self): #self.db = QSqlDatabase.addDatabase('QSQLITE') if (QSqlDatabase.contains("qt_sql_default_connection")): self.db = QSqlDatabase.database("qt_sql_default_connection") else: self.db = QSqlDatabase.addDatabase('QSQLITE') self.db.setDatabaseName('./DataBase/StudentInformation.db') # 2 if not self.db.open(): # 3 QMessageBox.critical(self, 'Database Connection', self.db.lastError().text())
def opendb(self): if QSqlDatabase.contains("qt_sql_default_connection"): self.db = QSqlDatabase.database("qt_sql_default_connection") else: self.db = QSqlDatabase.addDatabase('QSQLITE') self.db.setDatabaseName('database.db') if not self.db.open(): QtWidgets.QMessageBox.critical(None, ("无法打开数据库"),("myLoginUI:初始化数据库失败"),QtWidgets.QMessageBox.Cancel) return False return True
def checkingConnection(self): """This function aims to check the database connection name and use it if exists""" if QSqlDatabase.contains(): self.db = QSqlDatabase.database() self.db.setDatabaseName('database.sqlite') self.db.open() else: self.db = QSqlDatabase.addDatabase("QSQLITE") self.db.setDatabaseName('database.sqlite') self.db.open()
def __init__(self, conname='default', hostname='localhost', port='3306', user='******', password='******'): self.conname = conname self.hostname = hostname if port is '': port = 3306 self.port = int(port) self.user = user self.password = password if (QSqlDatabase.contains(self.conname)): self.db = QSqlDatabase.database(self.conname) else: self.db = QSqlDatabase.addDatabase("QMYSQL", self.conname) self.query = QSqlQuery(self.db)
def addTable(self, database): """ This function creates the table widget, checks the Database connection and run a SQL Query in function of the database name""" self.tableWidget = QTableView() self.tableWidget.setStyleSheet( "font-family: arial; background-color: #F8F8FF;") # Checking connection if QSqlDatabase.contains(): db = QSqlDatabase.database() db.setDatabaseName('database.sqlite') db.open() else: db = QSqlDatabase.addDatabase("QSQLITE") db.setDatabaseName('database.sqlite') db.open() # Setting the SQL Query model = QSqlQueryModel() model.setQuery( f'''SELECT id, date, concept, value FROM {database}''', db) # Modeling and setting the Widget Position in the grid self.tableWidget.setModel(model) self.mainLayout.addWidget(self.tableWidget, 5, 0, 1, 3)
def dbToTableView(self, commandSQL): try: QApplication.processEvents() if QSqlDatabase.contains("qt_sql_default_connection"): db = QSqlDatabase.database("qt_sql_default_connection") else: db = QSqlDatabase.addDatabase("QSQLITE") db.setDatabaseName(self.dbPath) db.open() projectModel = QSqlQueryModel() projectModel.setQuery(commandSQL, db) projectModel.setHeaderData(0, Qt.Horizontal, 'پلاک') projectModel.setHeaderData(1, Qt.Horizontal, 'بخش') projectModel.setHeaderData(2, Qt.Horizontal, 'تعداد جلد') projectModel.setHeaderData(3, Qt.Horizontal, 'تعداد صفحات') projectModel.setHeaderData(4, Qt.Horizontal, 'نوع') projectModel.setHeaderData(5, Qt.Horizontal, 'همکار تقاضا کننده') projectModel.setHeaderData(6, Qt.Horizontal, 'تحویل گیرنده') projectModel.setHeaderData(7, Qt.Horizontal, 'علت درخواست') projectModel.setHeaderData(8, Qt.Horizontal, 'توضیحات') projectModel.setHeaderData(9, Qt.Horizontal, 'تاریخ تحویل') projectModel.setHeaderData(10, Qt.Horizontal, 'ساعت تحویل') projectModel.setHeaderData(11, Qt.Horizontal, 'تاریخ بازگشت') projectModel.setHeaderData(12, Qt.Horizontal, 'ساعت بازگشت') self.ui.tableView_result.setModel(projectModel) # self.ui.tableView_result.show() self.rowCount = projectModel.rowCount() self.tableResult = projectModel db.close() QApplication.processEvents() except Exception as e: if e.message != '': errormsg = e.message else: errormsg = " " self.errorM('مشکل در ارتباط با دیتابیس\n {}'.format(errormsg))