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

使用ADODB连接SQL数据库遇问题及pyodbc驱动报错求助

SQL数据库连接问题排查与解决

一、ADODB连接无报错但无数据的排查点

  • 先确认myserver、mydatabase、user、password这几个变量有没有正确赋值,别写错或者留空了
  • 去数据库客户端里跑一遍SELECT * FROM DocumentInvoiceDetail,看看表本身是不是真的没有数据
  • ADODB的Recordset要先判断有没有数据再取,比如加个判断:
    if not rs.EOF:
        t = rs.GetRows()
    else:
        t = []  # 空结果集处理
    
  • 可以加个调试,打印rs.RecordCount看看记录数,确认是不是真的没返回数据
  • 连接字符串拼接容易出问题,换成格式化写法更稳妥:
    DSN = f'Provider=SQLOLEDB.1;DATA SOURCE={myserver};Initial Catalog={mydatabase};UID={user};pwd={password}'
    

二、adodbapi安装失败的解决办法

  • 试试指定稳定版本安装:pip install adodbapi==2.6.0.7
  • 检查Python的位数(32/64位)和系统是否匹配,架构不兼容也会装不上
  • 国内环境换镜像源安装:pip install adodbapi -i https://pypi.tuna.tsinghua.edu.cn/simple

三、pyodbc驱动错误的解决(已自行解决)

原错误Data source name not found and no default driver specified是因为指定的Devart ODBC Driver for SQL Server没装或者配置不对,换成系统自带的SQL Server驱动就正常了,最终可用代码:

import pyodbc
from pprint import pp
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;DATABASE=database;UID=user;PWD=pw')
cursor = cnxn.cursor()

另外提一句,也可以用更现代的ODBC Driver 17 for SQL Server驱动,兼容性更好,连接字符串改成:
DRIVER={ODBC Driver 17 for SQL Server};SERVER=server;DATABASE=database;UID=user;PWD=pw

内容的提问来源于stack exchange,提问作者Clayton Hua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:22:41