如何在pyodbc中设置登录连接超时,超时3秒即报错退出程序?
问题原因
- 你使用的
pyodbc.SQL_CONVERT_TIME是控制数据类型转换的超时参数,和数据库连接超时完全无关,不会生效 - 你写的
PORT参数不被ODBC Driver for SQL Server识别,SQL Server的端口需要拼接到SERVER参数后,用逗号分隔 - 没有显式配置连接超时参数,也没有超时后退出程序的逻辑
修改后代码
import pyodbc import sys def SpecialFunc(server:str,port:str,username:str,password:str,db_name:str): try: # 拼接正确的连接字符串 conn_str = ( 'DRIVER={ODBC Driver 17 for SQL Server};' f'SERVER={server},{port};' f'DATABASE={db_name};' f'UID={username};' f'PWD={password};' 'Connect Timeout=3;' # 配置连接超时为3秒,单位为秒 ) conn = pyodbc.connect(conn_str) except Exception as e: print(f"连接错误:{e}") sys.exit(1) # 输出错误后直接退出程序
补充说明
你也可以不用在连接字符串里加超时配置,直接在connect方法中传入timeout参数,效果完全一致:conn = pyodbc.connect(conn_str, timeout=3)
内容的提问来源于stack exchange,提问作者Daniel Zheleznov
相关产品推荐
相关产品推荐

