序言
小工具1.0版本,备份oracle存储过程的小工具上篇文章已经都了解完毕了,下面继续进行功能升级,2.0版本-表数据的导出功能。
背景
案例分析第四课-表数据导出工具
表数据导出功能其实借助工具(譬如PLSQL Developer)都是可以实现的,但是为了学习知识以及丰富我们的工具的功能。今天一起来学习一下,并且和上篇中存储过程备份脚本结合到一起。
思路
1.首先回顾一下昨天的界面:
2.大概设计一下表数据导出的界面。
(1)填写表名的输入框
(2)加上where条件是不是更完善
(3)再就是如果比较复杂的数据可能就需要写sql,所以也需要输入sql的输入框,
(4)我们可以把表名和sql的输入框进行合并,用一个选择框来决定是表名还是sql。
(5)最后得有一个【导出数据】的按钮
综上所述,并结合昨天的界面,大概得到界面如下图所示:
代码及解析
根据上述的界面,用tkinter开始编写代码(建议先看看关于tkinter模块的具体用法):
1.结合昨天的代码,先得写出这个界面,代码如下:
import tkinter
from tkinter import *
menuwin = tkinter.Tk()
menuwin.title('QfTool')
screenwidth = menuwin.winfo_screenwidth()
screenheight = menuwin.winfo_screenheight()
width = 315
height = 500
menuwin.maxsize(width, height) # 设置窗口最大化
size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2 - 50)
menuwin.geometry(size)
v_user = tkinter.StringVar()
v_pass = tkinter.StringVar()
v_orcl = tkinter.StringVar()
v_path = tkinter.StringVar()
v_where = tkinter.StringVar()
tkinter.Label(menuwin, text='-------------------------------------oracle连接-------------------------------------',
width=40).grid(padx=10, pady=5, row=0, column=0, columnspan=4, sticky='w')
tkinter.Label(menuwin, text='用户名:', width=10).grid(padx=10, pady=5, row=1, column=0, sticky='w')
tkinter.Entry(menuwin, textvariable=v_user, relief='flat', width=25).grid(padx=10, pady=5, row=1, column