Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file '/home/pos/Development/DB_Change/Login.ui'
- #
- # Created by: PyQt5 UI code generator 5.8.1
- #
- # WARNING! All changes made in this file will be lost!
- import sys
- from PyQt5.QtWidgets import QApplication,QGridLayout,QMessageBox,QWidget,QTableWidget,QTableWidgetItem ,QTabWidget,QBoxLayout
- from PyQt5 import QtCore, QtWidgets
- from PyQt5.QtCore import Qt
- from PyQt5.QtSql import QSqlDatabase,QSqlQuery
- from PyQt5.QtWidgets import QApplication, QWidget, QShortcut
- from PyQt5.QtCore import QTimer
- from PyQt5.QtGui import QKeySequence
- from PyQt5.QtCore import QThread
- import datetime
- import logging
- import os
- dirname ="LogFolder"
- if not os.path.isdir("./" + dirname + "/"):
- os.mkdir("./" + dirname + "/")
- DB_Browser_logger= logging.getLogger()
- DB_Browser_logger.setLevel(logging.DEBUG) # or whatever
- today=datetime.date.today()
- handler = logging.FileHandler('./LogFolder/Logfile_%s.log'%today, 'w', 'utf-8') # or whatever
- handler.setFormatter = logging.Formatter('%(name)s %(message)s') # or whatever
- DB_Browser_logger.addHandler(handler)
- __author__ = "ko john <kimo87@gmail.com>"
- class 클래스명(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(ServerTable, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db =QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password )
- self.layout.addWidget(self.table)
- self.Seleccionar()
- def Seleccionar(self):
- self.db =QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password )
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(컬럼개수)
- self.table.setHorizontalHeaderLabels([컬럼명])
- row=0
- sql="select * from [테이블명]"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- [변수명]=QTableWidgetItem(str(query.value(0)))
- [변수명]=QTableWidgetItem(str(query.value(1)))
- [변수명]=QTableWidgetItem(str(query.value(2)))
- [변수명]=QTableWidgetItem(str(query.value(3)))
- self.table.setItem(row,0,[컬럼])
- self.table.setItem(row, 1, [컬럼)
- self.table.setItem(row, 2, [컬럼)
- self.table.setItem(row, 3, [컬럼)
- row=row+1
- self.db.close()
- def Actualizar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else :
- column=self.table.currentColumn()
- row=self.table.currentRow()
- Pid=self.table.item(row,0).text()
- value=self.table.currentItem().text()
- columns=[[컬럼명]]
- query=QSqlQuery()
- sql="[쿼리문]"
- query.prepare(sql)
- query.bindValue(":Pid",Pid)
- query.bindValue(":value",value)
- buttonReply = QMessageBox.question(self, 'Pos_DB_Browser message', "데이터를 수정합니까??",
- QMessageBox.Yes | QMessageBox.Cancel)
- if buttonReply == QMessageBox.Yes:
- estado=query.exec_()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- self.db.close()
- else :
- self.db.close()
- class 클래스명(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(StationTable, self).__init__(parent=parent)
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.layout.addWidget(self.table)
- self.Seleccionar()
- self.table.itemChanged.connect(self.Actualizar)
- QShortcut(QKeySequence('F5'), self, self.Seleccionar)
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount([컬럼개수])
- self.table.setHorizontalHeaderLabels([컬럼명])
- row=0
- sql="select * from [테이블명]"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- [변수명] = QTableWidgetItem(str(query.value(0)))
- [변수명]=QTableWidgetItem(str(query.value(1)))
- [변수명]=QTableWidgetItem(str(query.value(2)))
- self.table.setItem(row, 0 , [컬럼명])
- self.table.setItem(row, 1 , [컬럼명])
- self.table.setItem(row, 2 , [컬럼명])
- row=row+1
- self.db.close()
- class 클래스명(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Logger_MAP_Table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- QShortcut(QKeySequence('F5'), self, self.Seleccionar)
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(5)
- self.table.setHorizontalHeaderLabels(["[컬렴명]"])
- row=0
- sql="select * from [테이블명]"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- Id=QTableWidgetItem(str(query.value(0)))
- Logger_ID=QTableWidgetItem(str(query.value(1)))
- Channel=QTableWidgetItem(str(query.value(2)))
- STT_Logger_ID=QTableWidgetItem(str(query.value(3)))
- STT_Channel=QTableWidgetItem(str(query.value(3)))
- self.table.setItem(row,0,Id)
- self.table.setItem(row, 1, [컬럼명])
- self.table.setItem(row, 2, [컬럼명])
- self.table.setItem(row, 3, [컬럼명])
- self.table.setItem(row, 4, [컬럼명])
- row=row+1
- self.db.close()
- class [클래스명](QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Logdef_Channel_Table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- QShortcut(QKeySequence('F5'), self, self.Seleccionar)
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(4)
- self.table.setHorizontalHeaderLabels([[컬럼명]])
- row=0
- sql="select * from [테이블명]"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- [변수명]=QTableWidgetItem(str(query.value(0)))
- [변수명]=QTableWidgetItem(str(query.value(1)))
- [변수명]=QTableWidgetItem(str(query.value(2)))
- [변수명]=QTableWidgetItem(str(query.value(3)))
- [변수명]=QTableWidgetItem(str(query.value(4)))
- [변수명]=QTableWidgetItem(str(query.value(5)))
- self.table.setItem(row,0,[컬럼명])
- self.table.setItem(row, 1, [컬럼명])
- self.table.setItem(row, 2, [컬럼명])
- self.table.setItem(row, 3, [컬럼명])
- self.table.setItem(row, 4, [컬럼명])
- self.table.setItem(row, 5, [컬럼명])
- row=row+1
- self.db.close()
- class 클래스명(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Voip_Setup_table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- self.table.itemChanged.connect(self.Actualizar)
- QShortcut(QKeySequence('F5'), self, self.Seleccionar)
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount([컬럼갯수])
- self.table.setHorizontalHeaderLabels([[컬럼명]])
- row=0
- sql="select * from [테이블명]"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- [변수명]=QTableWidgetItem(str(query.value(0)))
- [변수명]=QTableWidgetItem(str(query.value(1)))
- [변수명]=QTableWidgetItem(str(query.value(2)))
- self.table.setItem(row, 0 , [컬럼명])
- self.table.setItem(row, 1 , [컬럼명])
- self.table.setItem(row, 2 , [컬럼명])
- row=row+1
- self.db.close()
- def Actualizar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else :
- column=self.table.currentColumn()
- row=self.table.currentRow()
- Phone_CHannel=self.table.item(row,0).text()
- value=self.table.currentItem().text()
- columns=["phone_ch","phone_ip","phone_num","system_code","maxrecordtime","mincalllength",
- "backupmode","agentname","chstatus","usedtim","dtimport"]
- query=QSqlQuery()
- sql="UPDATE voipchsetup SET " +columns[column]+ "="+":value WHERE phone_ch=:Phone_CHannel"
- query.prepare(sql)
- query.bindValue(":Phone_CHannel",Phone_CHannel)
- query.bindValue(":value",value)
- buttonReply = QMessageBox.question(self, 'Pos_DB_Browser message', "데이터를 수정합니까??",
- QMessageBox.Yes | QMessageBox.Cancel)
- if buttonReply == QMessageBox.Yes:
- estado=query.exec_()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- self.db.close()
- else :
- self.db.close()
- class MainForm(QWidget):
- def __init__(self,type,Ip,dbname,username,PW):
- QWidget.__init__(self, flags=Qt.Widget)
- DB_Browser_logger.info("%s : 프로그램을 동작 시킵니다. " % datetime.datetime.now())
- self.db_type = type
- self.db_Ip=Ip
- self.db_Name=dbname
- self.db_UsName=username
- self.db_Password=PW
- self.tbw = QTabWidget()
- self.init_widget()
- def init_widget(self):
- self.setWindowTitle("POS_DB_Browser")
- self.resize(800, 600)
- self.setMinimumSize(800,600)
- self.setMaximumSize(800,600)
- form_lbx = QBoxLayout(QBoxLayout.TopToBottom, parent=self)
- self.setLayout(form_lbx)
- form_lbx.addWidget(self.tbw)
- self.tab()
- def tab(self):
- self.tbw.addTab(클래스명(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- 클래스명.__name__)
- self.tbw.addTab(클래스명(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- 클래스명.__name__)
- self.tbw.addTab(클래스명(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- 클래스명.__name__)
- self.tbw.addTab(클래스명(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- 클래스명.__name__)
- self.tbw.addTab(클래스명(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- 클래스명.__name__)
- class Ui_LoginFrom(QWidget):
- def setupUi(self, LoginFrom):
- LoginFrom.setObjectName("LoginFrom")
- LoginFrom.resize(350, 280)
- LoginFrom.setMinimumSize(QtCore.QSize(350, 280))
- LoginFrom.setMaximumSize(QtCore.QSize(350, 280))
- LoginFrom.setSizeIncrement(QtCore.QSize(350, 280))
- LoginFrom.setBaseSize(QtCore.QSize(350, 280))
- LoginFrom.setLocale(QtCore.QLocale(QtCore.QLocale.Korean, QtCore.QLocale.RepublicOfKorea))
- LoginFrom.setFrameShape(QtWidgets.QFrame.StyledPanel)
- LoginFrom.setFrameShadow(QtWidgets.QFrame.Raised)
- #label
- self.Servel_Label = QtWidgets.QLabel(LoginFrom)
- self.Servel_Label.setGeometry(QtCore.QRect(60, 30, 68, 17))
- self.Servel_Label.setObjectName("Servel_Label")
- self.ID_label = QtWidgets.QLabel(LoginFrom)
- self.ID_label.setGeometry(QtCore.QRect(100, 80, 31, 17))
- self.ID_label.setObjectName("ID_label")
- self.Pass_label = QtWidgets.QLabel(LoginFrom)
- self.Pass_label.setGeometry(QtCore.QRect(50, 130, 68, 17))
- self.Pass_label.setObjectName("Pass_label")
- self.DB_label = QtWidgets.QLabel(LoginFrom)
- self.DB_label.setGeometry(QtCore.QRect(50, 180, 71, 20))
- self.DB_label.setObjectName("DB_label")
- #오류형식
- self.Errorlabel = QtWidgets.QLabel(LoginFrom)
- self.Errorlabel.setGeometry(QtCore.QRect(20, 230, 201, 20))
- self.Errorlabel.setText("")
- self.Errorlabel.setObjectName("Errorlabel")
- #textbox
- self.ServerIp = QtWidgets.QLineEdit(LoginFrom)
- self.ServerIp.setGeometry(QtCore.QRect(130, 20, 211, 31))
- self.ServerIp.setInputMask("")
- self.ServerIp.setMaxLength(20)
- self.ServerIp.setObjectName("ServerIp")
- self.ID = QtWidgets.QLineEdit(LoginFrom)
- self.ID.setGeometry(QtCore.QRect(130, 70, 211, 31))
- self.ID.setMaxLength(20)
- self.ID.setObjectName("ID")
- self.Password = QtWidgets.QLineEdit(LoginFrom)
- self.Password.setGeometry(QtCore.QRect(130, 120, 211, 31))
- self.Password.setMaxLength(20)
- self.Password.setEchoMode(QtWidgets.QLineEdit.Password)
- self.Password.setObjectName("Password")
- self.Database = QtWidgets.QLineEdit(LoginFrom)
- self.Database.setGeometry(QtCore.QRect(130, 170, 211, 31))
- self.Database.setInputMask("")
- self.Database.setMaxLength(20)
- self.Database.setObjectName("Database")
- # button
- self.Login_Button = QtWidgets.QPushButton(LoginFrom)
- self.Login_Button.setGeometry(QtCore.QRect(230, 220, 111, 41))
- self.Login_Button.setObjectName("Login_Button")
- self.Login_Button.clicked.connect(self.login)
- self.retranslateUi(LoginFrom)
- QtCore.QMetaObject.connectSlotsByName(LoginFrom)
- def login(self):
- self.Databasetype="QMYSQL"
- self.server = self.ServerIp.text()
- self.user = self.ID.text()
- self.pw = self.Password.text()
- self.db = self.Database.text()
- try:
- self.mysqldb = QSqlDatabase.addDatabase(self.Databasetype)
- self.mysqldb.setHostName(self.server)
- self.mysqldb.setDatabaseName(self.user)
- self.mysqldb.setUserName(self.pw)
- self.mysqldb.setPassword(self.db)
- ok = self.mysqldb.open()
- if ok==False:
- pass
- else:
- self.dialog = MainForm(self.Databasetype,self.server,self.db,self.user,self.pw)
- self.dialog.show()
- except:
- QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
- def retranslateUi(self, LoginFrom):
- _translate = QtCore.QCoreApplication.translate
- LoginFrom.setWindowTitle(_translate("LoginFrom", "Login"))
- self.Login_Button.setText(_translate("LoginFrom", "Login"))
- self.Servel_Label.setText(_translate("LoginFrom", "Server Ip"))
- self.ID_label.setText(_translate("LoginFrom", "ID"))
- self.Pass_label.setText(_translate("LoginFrom", "Pass word"))
- self.DB_label.setText(_translate("LoginFrom", "Database"))
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- LoginFrom = QtWidgets.QFrame()
- ui = Ui_LoginFrom()
- ui.setupUi(LoginFrom)
- LoginFrom.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement