明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP中數(shù)據(jù)庫調用中經常見出錯的現(xiàn)象與處理

[摘要]下面是虛機維護中,經常碰到的一些ASP程序中的數(shù)據(jù)庫調用的錯誤,現(xiàn)收集整理如下:不能打開注冊表關鍵字(8007000e)  Microsoft OLE DB Provider for ODBC Drivers 錯誤 '8007000e'   [Microsoft][ODBC Mic...
下面是虛機維護中,經常碰到的一些ASP程序中的數(shù)據(jù)庫調用的錯誤,現(xiàn)收集整理如下:

不能打開注冊表關鍵字(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.打開數(shù)據(jù)庫時寫法不對,標準的ACCESS數(shù)據(jù)庫調用寫法:

  "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB")

  2. 正在上傳數(shù)據(jù)庫文件。

――――――――――――――――――――――――――――――――――――

一般性網(wǎng)絡錯誤。請檢查網(wǎng)絡文檔(80004005)

  Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005' [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]一般性網(wǎng)絡錯誤。請檢查網(wǎng)絡文檔。

  1.數(shù)據(jù)庫連接書寫不正確,可能數(shù)據(jù)庫名、服務器名錯誤。

  2.數(shù)據(jù)庫服務器重啟中。

――――――――――――――――――――――――――――――――――――

不能使用 '';文件已在使用中(80004005)

  Microsoft JET Database Engine 錯誤 '80004005'

  不能使用 '';文件已在使用中。

  1.文件可能正被占用:上傳、壓縮、打包。

  2.可能程序代碼中形成了嵌套包含,重復包含的數(shù)據(jù)庫調用文件。


――――――――――――――――――――――――――――――――――――

不能更新。數(shù)據(jù)庫或對象為只讀/操作必須使用一個可更新的查詢 (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] 不能更新。數(shù)據(jù)庫或對象為只讀。

  1.數(shù)據(jù)庫文件權限不夠。

  2.文件占用空間達到磁盤限額上限。

  當提示“操作必須使用一個可更新的查詢”時有幾個主要的錯誤原因:這個錯誤發(fā)生在當你的程序試圖執(zhí)行更新數(shù)據(jù)庫或其它類似操作時。這是因為ADO由于以下的幾個原因而不能夠寫數(shù)據(jù)庫造成的。

  1.最普遍的原因是匿名用戶帳號(IUSR_MACHINE)對該數(shù)據(jù)庫文件沒有寫權限。要解決這個問題,在管理器中調整數(shù)據(jù)庫文件的屬性,讓匿名用戶有正確的權限。當使用ACCESS數(shù)據(jù)庫時,不僅要給文件寫的權限,還要給該目錄寫的權限,因為Jet需要在該目錄建立一個.ldb文件。

  2.第二個原因是數(shù)據(jù)庫沒有使用正確的模式打開。應該使用下面的方法打開。

  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.你是在同時更新兩個表中的字段,也會出現(xiàn)這個錯誤信息,解決辦法是分開來更新這兩個表中各自字段。

  5.當你使用了一個從低版本中(如ACCESS2.0,ACCESS7.0)載入到高版本(ACCESS 2000)中的查詢時,在執(zhí)行這個查詢是會出現(xiàn)該錯誤。

――――――――――――――――――――――――――――――――――――

未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認驅動程序(80004005)
  Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'

  [Microsoft][ODBC 驅動程序管理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認驅動程序

  1.使用了ODBC連接數(shù)據(jù)庫,服務器上沒有配置ODBC數(shù)據(jù)庫,改用OLEDB的標準調用方式:

  "Driver={SQL Server};Database=dbname;Server=srv;Uid=user;Pwd=pd"可以解決。