錯誤|解決|資料|資料庫
下面是虛機維護中,經常碰到的一些ASP程式中的資料庫調用的錯誤,現收集整理如下:
不能開啟註冊表關鍵字(8007000e)
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '8007000e'
[Microsoft][ODBC Microsoft Access Driver]常見錯誤 不能開啟註冊表關鍵字 'Temporary
(volatile) Jet DSN for process 0x11b4 Thread 0x1a4c DBC 0x9d34354 Jet'。
1.開啟資料庫時寫法不對,標準的ACCESS資料庫調用寫法:
"driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB")
2. 正在上傳資料庫檔案。
――――――――――――――――――――――――――――――――――――
一般性網路錯誤。請檢查網路文檔(80004005)
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005' [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]一般性網路錯誤。請檢查網路文檔。
1.資料庫連接書寫不正確,可能資料庫名、伺服器名錯誤。
2.資料庫伺服器重啟中。
――――――――――――――――――――――――――――――――――――
不能使用 '';檔案已在使用中(80004005)
Microsoft JET Database Engine 錯誤 '80004005'
不能使用 '';檔案已在使用中。
1.檔案可能正被佔用:上傳、壓縮、打包。
2.可能程式碼中形成了嵌套包含,重複自主資料庫調用檔案。
――――――――――――――――――――――――――――――――――――
不能更新。資料庫或對象為唯讀/操作必須使用一個可更新的查詢 (80004005)
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC Microsoft Access Driver] 操作必須使用一個可更新的查詢。
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005' [Microsoft][ODBC Microsoft Access Driver] 不能更新。資料庫或對象為唯讀。
1.資料庫檔案許可權不夠。
2.檔案佔用空間達到磁碟限額上限。
當提示“操作必須使用一個可更新的查詢”時有幾個主要的錯誤原因:這個錯誤發生在當你的程式試圖執行更新資料庫或其它類似操作時。這是因為ADO由於以下的幾個原因而不能夠寫資料庫造成的。
1.最普遍的原因是匿名使用者帳號(IUSR_MACHINE)對該資料庫檔案沒有寫入權限。要解決這個問題,在管理器中調整資料庫檔案的屬性,讓匿名使用者有正確的許可權。當使用ACCESS資料庫時,不僅要給檔案寫的許可權,還要給該目錄寫的許可權,因為Jet需要在該目錄建立一個.ldb檔案。
2.第二個原因是資料庫沒有使用正確的模式開啟。應該使用下面的方法開啟。
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 '3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close
注意預設的Mode是設定0(adModeUnknown),它是允許更新的。
3.還有可能是在ODBC管理器中將該DSN的唯讀選項選中。
4.你是在同時更新兩個表中的欄位,也會出現這個錯誤資訊,解決辦法是分開來更新這兩個表中各自欄位。
5.當你使用了一個從低版本中(如ACCESS2.0,ACCESS7.0)載入到高版本(ACCESS 2000)中的查詢時,在執行這個查詢是會出現該錯誤。
――――――――――――――――――――――――――――――――――――
未探索資料源名稱並且未指定預設驅動程式(80004005)
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC 驅動程式管理器] 未探索資料源名稱並且未指定預設驅動程式
1.使用了ODBC串連資料庫,伺服器上沒有配置ODBC資料庫,改用OLEDB的標準調用方式:
"Driver={SQL Server};Database=dbname;Server=srv;Uid=user;Pwd=pd"可以解決。