2009-10-22 68 views
0

我正在開發使用Access數據庫(MDB格式)的Delphi 7應用程序。它可以在我的電腦和其他一些PC上正常工作。但是在有些機器上,有時試圖訪問數據庫時會出現錯誤,比如說「未知數據庫格式(mdb)」。另外我注意到一件事情:當您使用Office在Ms Access中打開該數據庫時,出於某種原因它以「只讀」模式打開。任何人都可以幫忙嗎?這個問題的原因是什麼?從Delphi 7打開Access數據庫的問題

+0

您使用的是DAO還是ADO? – 2009-10-24 19:04:29

回答

1

我認爲你最可能的問題是使用MDAC,使用註冊表來檢查每臺機器上的版本,看看有沒有工作和不工作的不同之處。

+0

請試試,謝謝:) – 2009-10-24 18:32:28

2

自從我在Delphi上編程已經很長時間了,但是我記得我在安裝不同版本的MDAC時遇到了問題。比較電腦的工作和那些不工作的版本。

+0

檢查mdac版本的簡單方法是打開regedit並檢查HKEY_CLASSES_ROOT以獲取MDACVer.Version。*標記 – 2009-10-22 13:03:24

+0

,並且因爲檢測到MDAC版本是如此的痛苦,請在此處http://support.microsoft.com/kb/301202尋求幫助和工具。 – fvu 2009-10-22 13:04:22

+0

如果MDACVer.Version.2.81不存在:[升級] [1] [1]:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=78cac895-efc2-4f8e -a9e0-3a1afbd5922e – 2009-10-22 13:04:51

1

如果數據庫文件(mdb文件)實際設置爲只讀(例如,如果它已從CD中複製),我以前會得到該錯誤消息。檢查Windows資源管理器中的文件屬性,並確保該文件不是隻讀的。

而且,你嘗試過內訪問做一個緊湊&修復,如Access數據庫經常損壞,此選項往往可以幫助引起的問題的所有方式。

+1

Jet/ACE數據庫不會*經常損壞,除非您不恰當地使用Jet/ACE,並且沒有以適當的方式使用Jet/ACE。 -1 – 2009-10-23 01:25:37

+0

我不同意。我們使用Access作爲我們的軟件數據庫近10年,並且經常損壞,直到我們必須將我們自己的「修復」選項引入到軟件中。 我很欣賞你的觀點,並且知道你在Access方面也有很多經驗,但這並不是虐待,只是一個事實,當它被大量使用時。 – 2009-10-23 07:50:33

+0

「它經常損壞,直到我們必須將我們自己的」修復「選項引入到軟件中」 - 在那裏:) – onedaywhen 2009-10-23 09:29:42

1

什麼版本的Access是MDB格式化的?你使用DAO或ADO來訪問數據庫。 MDB在2003年還是2007年?我懷疑它是A2007格式,而您遇到麻煩的機器安裝了A2003或者沒有Access版本。而工作的機器上安裝有A2007。但這只是一個猜測。

您還需要跟蹤只讀問題。

+0

您不需要安裝MSAccess以將.mdb文件用作數據庫,只需安裝MDAC並使用ADO進行連接即可。 – 2009-10-24 07:09:49

+0

Toby:或者您可以使用DAO,因爲它帶有Windows 2000,XP,Vista和7操作系統。 (我認爲德爾福也支持DAO。) – 2009-10-24 18:59:24

-1

你說:「它在我的PC和其他一些PC上運行良好。」

然後它聽起來像你的程序可能沒有任何問題。可能的是,它始終無法工作的PC沒有安裝Microsoft Office或至少Microsoft Access。他們需要安裝ADO才能工作。

如果沒有進一步的線索,機器上的「有時」問題很難診斷。

恐怕我不知道「只讀」問題可能是什麼。

+0

我有Access 2007,但該文件是Access 2000文件(我選擇了最舊的可能文件格式)。有這個問題的計算機也安裝了Access(與我的版本不一樣)。 – 2009-10-23 06:12:58

+0

您是否在有問題的PC上檢查了mdb文件的只讀狀態? – 2009-10-23 07:51:51

+0

對不起,這只是錯誤的,你不需要安裝Access使用MDB文件,你只需要MDAC(從微軟免費下載)。很少有機器可以安裝。 – 2009-10-24 07:10:56