def run_query(self, query):
try:
for column in self.query_tree.get_columns():
self.query_tree.remove_column(column)
cursor = self.conn.cursor()
cursor.execute(query)
self.conn.commit()
self.query_info.set_text(cursor.statusmessage)
if not cursor.description:
return
columns = []
# TODO get rid of manual incrementing
i = 0
for description in cursor.description:
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(description.name.replace('_', '__'), renderer, text=i)
column.set_resizable(True)
i += 1
self.query_tree.append_column(column)
columns.append(str)
store = Gtk.ListStore(*columns)
for row in cursor.fetchall():
store.append([str(i) for i in row])
self.query_tree.set_model(store)
except DatabaseError as e:
Alert(e.message, self.query_tree.get_toplevel())
self.conn.rollback()
self.query_tree.show_all()
评论列表
文章目录