sql-server - Python pydobc 到 SQL Server 连接中的连接尝试失败
问题描述
我有 python 代码将大量 CSV 数据上传到 SQL Server。由于我不明白的原因,代码继续失败。它抛出错误pyodbc.OperationalError。我通过(手动)重新启动并查找最后上传的记录并从那里继续上传来临时修复,但这真的很糟糕。
这是错误消息:
('08S01', '[08S01] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接主机失败响应。\r\n (10060) (SQLExecDirectW); [08S01] [Microsoft][ODBC Driver 17 for SQL Server]通信链路故障 (10060)')
我尝试在中设置超时变量connect()
conn = pyodbc.connect(
r'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server_name + '; \
Database=' + db_name + ';Trusted_Connection=yes;DATABASE=', timeout=5, autocommit=True)
问题是我不明白这个错误。它已经建立了联系。它进行了很多查询来上传数据。但是突然连接断开了?
我该如何解决?
附录:我添加了代码来捕获错误,然后重试调用正在将数据写入表的存储过程。我让它等待 30 秒(我尝试了 5、10,现在最多 30),然后尝试再次调用 SQL。它在调用执行 sql 时继续失败:
return_key = cursor.execute(sql_str, values).fetchval()
我想也许如果我只是等待并重试调用存储过程,它会起作用。但没有这样的运气。
解决方案
推荐阅读
- python - 如何一次性执行列表插入和弹出?
- android - 已获取数据时如何防止显示加载指示器
- php - 输入值不显示在 WooCommerce 城市字段中
- python-3.x - Python - BS4:在 div 之间提取文本
- testing - 捕获 axios 请求并在 e2e 测试中提供模拟
- jquery - 无法在 asp.mvc 中使用 ajax 调用成功接收值列表
- python-3.x - Scrapy 不会从 span 类中获取所有文本
- python - 防止 f 字符串将浮点数转换为科学计数法
- c# - 布尔值在设置为 true 后返回 false
- c++ - 将普通 C++ 字符串写入快速 JSON 会导致字符串带有反斜杠