首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP+Access 部署到服務器寫入失敗:ODBC 改用 OLEDB 連接字符串解決

     編輯:程式設計綜合問答

故障現象

本地測試正常,上傳至虛擬主機後表單提交報錯,無法寫入 Access 數據庫。

原因分析

虛擬主機通常**不支持系統 DSN (ODBC)**,且權限限制導致 Server.CreateObject("ADODB.Connection") 使用 ODBC 連接失敗。

解決方案

改用 **OLEDB Provider (Microsoft.Jet.OLEDB.4.0 / Microsoft.ACE.OLEDB.12.0)** 直連 .mdb/.accdb 文件,無需配置 DSN。

修正連接代碼

<%
Dim conn, connStr
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/mydb.mdb") & ";"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connStr
' 執行 SQL...
conn.Close
Set conn = Nothing
%>

注意事項

  • 確保數據庫文件所在目錄對 IIS 用戶 (IUSR/IIS_IUSRS) 有**寫入權限**。
  • Access 2007+ (.accdb) 需安裝 Access Database Engine 2010/2016 Redistributable** 並使用 Microsoft.ACE.OLEDB.12.0。
  • 連接字符串路徑務必用 Server.MapPath 獲取物理路徑。

驗證步驟

  1. 本地用相同連接字符串測試通過。
  2. 部署後檢查錯誤日誌,確認無「找不到提供程序」或「路徑無效」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved