python窗体向sql添加数据_Python数据库插入语句脚本生成工具(SQL Server),Insert,SQLServer...

编写这个小工具,是因为平时部署项目的时候,需要导出一些公共的数据(权限、参数设置等),覆盖插入正式环境。

话不多说,直接上代码:

import pyodbc

import warnings

import decimal

import winreg

import os

import configparser

import time

import datetime

warnings.filterwarnings('ignore')

def link():

root_dir = os.path.split(os.path.realpath(__file__))[0]# 获取当前文件所在目录的上一级目录,即项目所在目录

configPath = os.path.join(root_dir, "config.txt")

cf = configparser.ConfigParser()

cf.read(configPath) # 拼接得到config.txt文件的路径,直接使用

# 数据库服务器信息

driver = cf.get("Mssql-Database", "driver") # 因版本不同而异

server = cf.get("Mssql-Database", "server")

user = cf.get("Mssql-Database", "user")

password = cf.get("Mssql-Database", "password")

database = cf.get("Mssql-Database", "database")

table = cf.get("Mssql-Database", "table")

conn = pyodbc.connect(driver=driver, server=server, user=user, password=password, database=database) #数据库链接

cur = conn.cursor()#开启

arr = table.split(',') #多个表查询,用逗号隔开','

path = get_desktop() + "\\SqlDataScript"

if not os.path.exists(path):

os.mkdir(path)

for ar in arr:

sql='SELECT * FROM %s;'%ar #执行查询

print(sql) # 查询语句

cur.execute(sql)

rows = cur.fetchall() # list

index = cur.description

f = open(path +"\\"+ ar +"("+ time.strftime('%Y%m%d%H%M%S') +")" +".sql","w+",encoding='utf-8') #生成脚本(表名+时间戳为文件名)

#拼接insert语句

for res in rows:

sqlText = 'INSERT INTO %s('%ar

sqlVal = 'VALUES('

for i in range(len(index)-1):

sqlText = sqlText + index[i][0] +','#字段名

if type(res[i]) == datetime.datetime: #时间格式字段,保留时分秒(不限制的话,有时候生成的毫秒格式有问题)

sqlVal = sqlVal + "'%s',"%res[i].strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]

else:

sqlVal = sqlVal + "'%s',"%res[i] #字段内容

sqlVal = sqlVal.strip(',') + ')' #去除最后的','

sqlText = sqlText.strip(',') + ')' +' '+ sqlVal + ';' #字段名 + 字段内容

print(sqlText) #打印sql

f.write("%s\r\n" % sqlText) #文件写入

f.close()

conn.close() #关闭数据库链接

os.system("start explorer "+ path) #打开文件存放目录

# 获取桌面路径

def get_desktop():

key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')

return winreg.QueryValueEx(key, "Desktop")[0]

if __name__=='__main__':

link()

执行完的效果展示:

表名加时间戳命名,临时存放桌面文件夹,并自动打开文件夹(方便查看,不用去找)。

20200317145212261.png

config.txt  配置文件,搭配使用,需要访问什么数据库直接改配置文件即可。

数据库访问地址要带上端口号192.168.1.222,1433

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMzQzNTc3,size_16,color_FFFFFF,t_70

python 打包exe:

找到文件所在目录

执行脚本pyinstaller -F BackUp.py

20200317145837483.png

打包成功,exe生成的路径如下:

20200317145921955.png

20200317150149209.png

改个名字,把config文件一起配合使用即可。大功告成~

附上百度云的共享地址:

链接:https://pan.baidu.com/s/1AyvUDNDM2lBZlHmQNanpbA

提取码:2qkm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值