当前位置: 首页>>代码示例>>Python>>正文


Python Parser.getTable方法代码示例

本文整理汇总了Python中Parser.Parser.getTable方法的典型用法代码示例。如果您正苦于以下问题:Python Parser.getTable方法的具体用法?Python Parser.getTable怎么用?Python Parser.getTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parser.Parser的用法示例。


在下文中一共展示了Parser.getTable方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: initSidebar

# 需要导入模块: from Parser import Parser [as 别名]
# 或者: from Parser.Parser import getTable [as 别名]
	def initSidebar(self):
	#---------------------
		""" Initializes the sidebar with the tables list and configures it"""
		toList = ["table", "view", "procedure",
				"trigger", "scalarfunction", "tablefunction"]

		statusID = self.statusbar.get_context_id("sidebar")
		self.statusbar.push(statusID, "Initializing Sidebar")

		scrolls = gtk.ScrolledWindow(gtk.Adjustment(), gtk.Adjustment())
		scrolls.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

		treestore = gtk.TreeStore(str)
		self.sidebar = gtk.TreeView(treestore)
		cell = gtk.CellRendererText()
		column = gtk.TreeViewColumn("Database Objects", cell, text=0)
		self.sidebar.append_column(column)

		masterTable = []

		for item in toList:
			result = self.database.query(self.listAll+" "+item)
			if "Error" not in result:
				statusID = self.statusbar.get_context_id("success")
				self.statusbar.push(statusID, "Success.")
				parser = Parser(result)
				table = parser.getTable()[:] #the [:] makes a clone
				table.insert(0, [item])
				masterTable.append(table)
				rows = parser.getTableIterator()
				iter = treestore.append(None, [item.title()])
				while rows.hasNext():
					treestore.append(iter, [str(rows.getNext()[0])])
			else:
				statusID = self.statusbar.get_context_id("error")
				self.statusbar.push(statusID, result)

		self.searcher = Searcher(masterTable)

		self.sidebar.connect("row-activated", self.rowClicked, masterTable)

		scrolls.add(self.sidebar)
		self.vpanedPanel.add(scrolls)
		scrolls.show()
		self.sidebar.show()

		self.statusbar.push(statusID, "Sidebar Loaded")
开发者ID:apenwarr,项目名称:versaplex,代码行数:49,代码来源:Main.py

示例2: rowClicked

# 需要导入模块: from Parser import Parser [as 别名]
# 或者: from Parser.Parser import getTable [as 别名]
	def rowClicked(self, treeview, position, column, masterTable):
	#-------------------------------------------------------------
		""" 
		Given the position coordinates and the master table (a 
		list of all data that is in the sidebar), this method opens
		a new editor tab which has code in it. The code is the source
		code to the object that was double clicked on in the sidebar.
		If the item is a table, the code is just a select statement.
		"""
		try:
			type = masterTable[position[0]][0][0]
			name = masterTable[position[0]][position[1]+1][0]
		except IndexError:
			contextID = self.statusbar.get_context_id("error")
			self.statusbar.push(contextID, 
					"Can't do anything with a category title")

			print "Can't do anything when a category title is clicked"
			return

		if type == "table":
			query = "select top 100 * from [%s]" % name

			contextID = self.statusbar.get_context_id("run query")
			self.statusbar.push(contextID, "Ran query: "+query)

			result = self.database.query(query)

			if "Error" not in result:
				editor = self.newTab(None, name)
				buffer = editor.get_buffer()
				buffer.set_text(query)
				statusID = self.statusbar.get_context_id("success")
				self.statusbar.push(statusID, "Success.")

				self.showOutput(editor, result)
			else:
				statusID = self.statusbar.get_context_id("error")
				self.statusbar.push(statusID, result)

		else:
			query = self.getObject + " " + type + " " + name

			contextID = self.statusbar.get_context_id("run query")
			self.statusbar.push(contextID, "Ran query: "+query)

			result = self.database.query(query)

			if "Error" in result:
				statusID = self.statusbar.get_context_id("error")
				self.statusbar.push(statusID, result)
				return
			else:
				statusID = self.statusbar.get_context_id("success")
				self.statusbar.push(statusID, "Success.")

			parser = Parser(result)
			data = parser.getTable()
			commands = data[0][0]

			com2 = commands[:]
			pattern1 = re.compile(r"^create", re.I)
			commands = re.sub(pattern1, r"ALTER", commands, 1)
			if commands == com2:
				pattern2 = re.compile(r"\ncreate", re.I)
				commands = re.sub(pattern2, r"\nALTER", commands, 1)

			editor = self.newTab(None, name)
			buffer = editor.get_buffer()
			buffer.set_text(commands)
开发者ID:apenwarr,项目名称:versaplex,代码行数:72,代码来源:Main.py


注:本文中的Parser.Parser.getTable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。