首页 新闻 会员 周边 捐助

pyodbc连接sqlserver批量插入数据

0
悬赏园豆:15 [待解决问题]
def write_db():
conn = pyodbc.connect(db_conf)
cur = conn.cursor()
if not cur:
raise (NameError, "数据库连接失败")
else:
with open('C:\demo_sql\sql.txt', 'r', encoding='utf-8') as read_data:
date = {}
for data in read_data:
ret = (eval(data))
NeedPickDT = ret[2]
ArrivedDT = ret[3]
EnterTime = ret[4]
ReceiverDT = ret[6]
sql = """
INSERT INTO dbo.one_resultdate (FormID_One, FormID_Two,NeedPickDT, ArrivedDT, EnterTime, AppOprFlag, ReceiverDT,
DCorpName,DententeType,DChauffeur,DriverID,DPlateNumber,ID,SenderID ,Sender,AttemperStatus,TBFlag,
shouru1,shouru2,shouru3,zhichu1,zhichu2,zhichu3,OutputAll,ABmrd,ABmri,Betc,OIlCard,Jinxiangfei,Oiljxfei,ZJLXjxfei,
ETCjxfei,YXjxfeu) VALUES (?, ?, ?, ?, ?, ?, ?, ?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
"""
try:
cur.execute(sql, ret[0], ret[1], NeedPickDT, ArrivedDT,EnterTime, ret[5], ReceiverDT,
ret[7], ret[8], ret[9], ret[10], ret[11], ret[12], ret[13], ret[14],ret[15], ret[16],ret[17],ret[18],ret[19],
ret[20], ret[21], ret[22], ret[23], ret[24], ret[25], ret[26],ret[27], ret[28],ret[29],ret[30],
ret[31],ret[32])
except Exception as e:
print("error:", e)
conn.commit()
conn.close()



if __name__ in '__main__':
write_db()

请教大神,txt文件里边有两万多条数据, 每次创建一次连接,插入一条数据, 然后关闭连接, 我想,能不能批量插入数据,一次插入2000条,然后在关闭连接, 这样插入数据的速度会快很多,但是我在百度找了pyodbc的教程, 也没找见。代码如上, 望大神帮忙看看, 在哪里添加比较合适。
WrYcF的主页 WrYcF | 初学一级 | 园豆:21
提问于:2018-08-13 11:08

insert into [m_company] values(3,'c0003','上海音智达',cast('2019-12-12 17:34:39' as datetime)),(31,'c0031','上海亦策' ,cast('2019-12-12 17:34:39' as datetime));

无$双 4年前
< >
分享
所有回答(1)
0

多条记录可以通过 拼接sql 实现一次性插入 看你一次想执行多少条记录的插入了

无$双 | 园豆:202 (菜鸟二级) | 2020-01-15 14:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册