我需要下一段代码的帮助。
我有一个调用data_client的函数,并在for循环中传递客户端B,C和D.所以我在data_client上接收这些客户端并逐个处理它们。但是当我插入数据(在SQL SERVER上)时,我只能插入一个或两个客户端,而不是三个客户端。 例如,我必须发表评论
#insert(i, j, k, l) or #insert(e, f, g, h) or #insert(a, b, c, d)
并且该过程正常,但如果三个函数没有注释,则脚本会抛出此错误:
con = pyodbc.connect("DRIVER={FreeTDS};SERVER=server;UID=usr;PWD=pass;DATABASE=DB_A")
pyodbc.Error:(' 08S01',' [08S01] [unixODBC] [FreeTDS] [SQL Server]无法连接:Adaptive Server不可用或不存在(20009)( SQLDriverConnectW)&#39)
#!/usr/bin/python
# coding: utf-8
import pyodbc
def data_client(client, a1, a2):
if client == 'B':
insert(a, b, c, d)
elif client == 'C':
insert(e, f, g, h)
elif client == 'D':
insert(i, j, k, l)
def insert(arg1, arg2, arg3, arg4):
con = pyodbc.connect("DRIVER={FreeTDS};SERVER=server;UID=usr;PWD=pass;DATABASE=DB_A")
cur = con.cursor()
try:
cur.execute("""INSERT INTO [DB_A].[dbo].[tb_A] ([col_a] ,[col_b] ,[col_c],[col_d]) VALUES (?, ?, ?, ?);""", [arg1, arg2, arg3, arg4.encode('utf-8')])
con.commit()
except pyodbc.IntegrityError, e:
print 'error: ', e
#continue
except pyodbc.InternalError, f:
print 'intern error: ', f
cur.execute("rollback;")
cur.close()
con.close()
我必须提到:
客户B有大约1700行
客户端C有大约5300行
客户D有大约700行
所以我不知道错误是因为我试图插入的行数或者是超时问题还是其他错误。
先谢谢你的帮助!!