常見的80004005錯誤及其解決方法 (轉)

amyz發表於2007-08-15
常見的80004005錯誤及其解決方法 (轉)[@more@]

常見的80004005錯誤及其解決方法:namespace prefix = o ns = "urn:schemas--com::office" />

  在編寫應用的過程中,我們常常要跟打交道,例如我們日常經常用的資料庫ACCESS、 SERVER等。在連線這些資料庫的時候,往往會給我們一些象這類“80004005”錯誤,這些五花八門的錯誤資訊很另人頭痛。為了方便網友解決這類問題,本文將詳細的介紹和解答這類問題。

[錯誤資訊]
Microsoft OLE  Provr for ODBC s error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need pession to view its data. 
[原因]
這個錯誤發生在IIS使用匿名帳號(通常是IUSR)時,該帳號在NT中對資料庫所在目錄
沒有正確的.

 [解決方法]
1、檢查和目錄的許可權. 保證Evryone能夠在該目錄中有新建和刪除臨時檔案的許可權。
2、檢查資料來源檔案(DSN)是否被別的程式標誌在使用中,這些程式一般都是Visual InterDev,關閉任何一個正在InterDev中開啟和資料庫連線的專案。
3、檢查ACCESS中的某個表是否在這時已連在一個上。
[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use. 
[原因]
要連線ACCESS資料庫這時正在被使用使資料庫被鎖定,導致無法訪問。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data  name not found and no default
driver specified. 
[原因]
可能的原因是ConnectString在global.asa中初始化的Application連線字串 ,而這時global.asa檔案卻沒有正常工作。

[解決方法]

檢查賦值時是否正確,在中加入下面的程式碼:





 
還有一個原因就是在ConnectString中加入了空格,例如
DSN = MyDSN; Database = Pubs; 
試試改成下面這個樣子:
DSN=MyDSN;Database=Pubs;
如果是global.asa還沒有被執行,檢查該檔案是否在運用程式的根目錄中,或者是虛擬目錄的根目錄中。
還有可能錯誤出現的原因是DSN名稱沒找著,這可以採用我提供的id=36767的辦法解決。最後是檢查是否了最新的程式,既是否是最新的MDAC版本。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ?? 
[原因]
這個錯誤有可能是出現在你的上安裝(或則反安裝)的順序上。如果ODBC的版本不一致的話,就會發生該錯誤。
[解決方法]

辦法是安裝最新版本的MDAC。


[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open
registry key 'DriverId'. 
[原因]
這個錯誤發生在從登錄檔中讀取數值的時候。 使用regedit32.exe檢查登錄檔的許可權。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).
[原因]
原因之一:當一個資料庫中包含有分別在不用機器上的許可關係時,這也可能發生在同一臺機器上,當給一個關係設定了UNC路徑,而另一個關係卻是本地路徑。
原因之二:當使用IIS匿名帳號登入後,對本地這臺機器而言他是有權的,但是對於一個UNC路徑的機器,另外這臺機器是不會認為你當前匿名登入的帳號在它那上面也是合法的。這樣它就不允許你訪問它上面的資源,導致錯誤。

[解決方法]
1、在IIS工具中,改變IIS匿名帳號成另外一個基於域的帳號。(也就是不使用匿名登入)
2、或則在那臺你要訪問資源的機器上也建立一個和當前匿名帳號同樣的帳號,使用同樣的密碼。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC
Microsoft SQL Driver] Logon Failed() 
[原因]
該錯誤是由SQL Server產生的,當它不接受或則不能夠認識這個登入帳號的時候,或者沒有使用管理員身份登入,
也可能是在NT中沒有SQL影射帳號造成的。
[解決方法]
用員帳號(SA)登入,一般密碼應該為空.注意,這時必須使用CoonectString而不能夠使用DSN檔案。因為DSN中沒有儲存使用者名稱和密碼。檢查NT是否給SQL對映了帳號。


[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:
Not defined as a valid user of a trusted SQL Server connection. 
[原因]
該錯誤是由SQL Server產生的,當它不接受或則不能夠認識這個登入帳號的時候,或者沒有使用管理員身份登入,
也可能是在NT中沒有SQL影射帳號造成的。
[解決方法]

在SQL Server的Enterprise Manager中,選擇Server/SQL Server/Configure[ASCII
133]/Security Options/Standard。如果是執行在IIS4中,取消選擇該專案的Pass Synchronization選項。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file. 
[原因]
也許是沒有正確的許可權生成Access資料庫的鎖定檔案(.ldb)
預設時,該檔案和你的資料庫是同一個目錄的。
給匿名帳號全權訪問資料庫共享目錄的許可權。
有時是因為檔案是因為共享時有意使用了只讀的許可權限制。

[解決方法]
Set Conn = Server.Create("ADODB.Connection")
Conn.Mode = adModeShareDenyWrite '8

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] '(unknown)' isn't a valid
path. Make sure that the path name is spelled correctly and that you are
connected to the server on which the file resides. 
[原因]
路徑。最可能發生在當Global.asa和CoonecntString被使用到另外一臺機器上的時候。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in
it exceed the limit of 16 tables. 

[原因]
對查詢有限制。

[錯誤資訊]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General work error. Check
your network document 
[原因]
裝有SQL Server的機器被改名,但資料庫名(DSN)還使用了原來的機器名。

[解決方法]

重新設定DSN。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958989/,如需轉載,請註明出處,否則將追究法律責任。

相關文章