You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:57:04