class DBConnection: """Utility class. Provides functionality for opening and closing db connections for clean resource management.""" def __init__(self): self._db = QSqlDatabase().addDatabase("QSQLITE") self._db.setDatabaseName("records.db") def open_db(self): if not self._db.isOpen(): self._db.open() else: print("Feck off, the db is already open") def close_db(self): if self._db.isOpen(): self._db.close() else: print("Feck off, the db is already closed") def db(self): return self._db
if __name__=='__main__': import sys app=QApplication(sys.argv) db=QSqlDatabase("QMYSQL") db.setHostName('57af503e35be5.gz.cdb.myqcloud.com') db.setDatabaseName('gstar') db.setUserName('root') db.setPassword('root123456*') db.setPort(4402) if not db.open(): print('open error') else: print ('open success!') print ('db is open', db.isOpen()) print ("db's driver name is", db.driverName()) print ("db's tables", db.tables()) query=QSqlQuery(db) query.prepare(u"SELECT * FROM material") s=query.exec_() while query.next(): print (query.value(0)) print (s)
def closeConnection(self, db: QSqlDatabase): print("%s: closeConnection" % os.path.basename(__file__)) if db: if db.isOpen(): db.close()
def openConnection(self, db: QSqlDatabase): print("%s: openConnection" % os.path.basename(__file__)) if db: if not db.isOpen(): db.open()