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

启用32位应用仍遇ODBC错误80004005,求技术解决方案

解决ODBC驱动报错:Microsoft OLE DB Provider for ODBC Drivers error '80004005'

哥们,这个报错我太熟了——本质就是你的ASP代码找不到对应的ODBC数据源或者驱动,咱们一步步来排查解决:

  • 先盯紧你的连接字符串
    你代码里Set con = Server...后面的连接逻辑是关键。如果是用DSN(数据源名称)连接,那两台电脑都得在32位ODBC数据源管理器里创建一模一样的DSN(因为你IIS开了32位应用,必须用C:\Windows\SysWOW64\odbcad32.exe打开,别用系统默认的64位管理器)。如果是用无DSN的连接字符串,那要确保驱动名称完全匹配系统里安装的,比如Access数据库的正确驱动字符串应该是Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\你的数据库路径\LEGO_DB.mdb;,SQL Server的话可能是Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=LEGOStore;Uid=sa;Pwd=你的密码;,别写错驱动名,差一个字符都不行。

  • 确认驱动是否安装到位
    既然两台电脑都出问题,大概率是你依赖的ODBC驱动没装。比如用Access数据库就得装Access Runtime(32位版本!),用SQL Server就得装对应版本的32位ODBC驱动。记住,IIS启用32位应用池的话,64位驱动根本认不出来,必须装32位的。

  • 检查数据库文件的权限
    有时候权限问题也会伪装成数据源错误。找到你的数据库文件所在的文件夹,给IIS应用池的身份(默认是IIS APPPOOL\你的应用池名称)加上读取权限,如果需要写入数据的话还要加写入权限。

  • 写个极简测试页定位问题
    把复杂的代码先放一边,写个只有连接逻辑的测试ASP页面,快速定位问题:

    <%
    Dim con
    Set con = Server.CreateObject("ADODB.Connection")
    ' 替换成你实际的连接字符串
    Dim connStr
    connStr = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\LEGO STORE\你的数据库文件.mdb;"
    On Error Resume Next
    con.Open connStr
    If Err.Number <> 0 Then
        Response.Write("连接失败:" & Err.Description)
    Else
        Response.Write("连接成功!")
    End If
    con.Close
    Set con = Nothing
    %>
    

    运行这个页面,如果还是报错,就看具体提示——是驱动找不到还是路径不对,一目了然。

内容的提问来源于stack exchange,提问作者Gladiator Kittens

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:48:34