_conn=self.conn
_query= "select * from `" + self.ui.TableNameIn.text() + "` ;"
cur = _conn.cursor(prepared=True)
try:
cur.execute(_query)
keys = cur.column_names
rows = cur.fetchall()
data = []
for row in rows:
self.str="{}".format(row) ※tuple型を変換
self.str = self.str.replace("bytearray(","") ※不要な部分を消去する
self.str = self.str.replace(")","")
self.str = self.str.replace("(","")
self.str = self.str.replace("b''"," ")
self.str = self.str.replace("b'","")
self.str = self.str.replace("'","")
line_str=[]
self.st=''
for new in self.str:
if new == "," :
line_str.append(self.st) ※List形にする
self.st=''
continue
self.st = self.st + new
line_str.append(self.st) ※List形にする
data.append(dict(zip(keys, line_str))) ※Dict型にする
cur.close()
res=data
except Exception as e:
self.ui.statusbar.showMessage(
self.ui.serverNameIn.text()+' - '+self.ui.DatabaseNameIn.text()+' - '+self.ui.TableNameIn.text()+' : DB Table Error ! ')
QMessageBox.critical(None, "Table: "+self.ui.TableNameIn.text()+' エラー', str(e), QMessageBox.Yes)
self.ui.messageOut.setText('')
return
#------------------
self.rowLengthSave = res.__len__()
self.ui.messageOut.setText('R:'+str(self.rowLengthSave))
MyForm.df=pd.DataFrame.from_records(res)
self.model = PandasModel(MyForm.df)
self.ui.tableView.setModel(self.model)