2012-06-20 49 views
1

我試圖安裝BDE引擎通過從我的安裝程序執行以下命令行如下。BDE安裝:驅動器c上沒有足夠的空間。無論如何安裝到這個位置

ShellExecute(0, nil, 'regsvr32.exe', 'BdeInst.dll', nil, SW_SHOW); 

它彈出消息請求在特定位置安裝BDE引擎的權限。當你點擊OK按鈕時,它會彈出另一條消息,如下所示。

enter image description here

我確認我有足夠的自由空間,在我的hardrive。當您單擊是按鈕時,它會成功安裝BDE引擎。

我不知道爲什麼。另外,關於這方面的信息並不多。

任何輸入將不勝感激。

+0

你相信你在硬盤上有多少空間(MB) - 可用?你運行的是哪個版本的Windows(如果你正在運行Windows)。 –

+0

@PatrickMoloney就像我有超過80GB。安裝程序正在Windows 7下開發,並在Windows 8,Windows 7甚至XP上測試安裝。他們都提出了同樣的錯誤。 – ThN

+0

問題是,bde安裝程序使用GetDiskFreeSpace,而不是GetDiskFreeSpaceEx - http://support.microsoft.com/kb/202455 – Petesh

回答

2

首先,該BDE已被棄用,你應該更好避免使用它,即使使用其他版本的Delphi。

您有第三方組件可以在不使用BDE的情況下直接連接到數據庫。見例如DevArt,SQLDirect,DASoft(它的FreeDAC是免費的)和許多其他組件如Zeosour SynDB Open Source libraries

您達到了衆所周知的「2GB舍入錯誤」。 BDE安裝程序受此影響,但也使用BDE的應用程序。

BDE安裝程序是越野車。

它只是不適用於較新版本的Windows。

您有其他的安裝周圍,像interbase and BDE on windows 7Bde Installer on these Embarcadero days

應用程序中使用BDE將遭受from the same 2GB limitation, linked to the GetDiskFreeSpace improper use

a work around available on Embarcadero CodeCentral這是值得包含在您的應用程序代碼。

2

BDE是一箇舊的軟件,現在已經過時了幾年。雖然人們仍然在運行,但我相信它最初是16位軟件,可能永遠不會改變。我感覺這個消息來自一些無法理解你的大硬盤的軟件。我不記得BDEInst.dll是否是來自Borland的BDE安裝程序,但消息可能來自於此。您還提到「正在開發安裝程序...」。

它應該安裝到XP,我會讓它在那裏工作。贏7和8引入更多的問題。但是,如果可能的話,現在重新考慮是否要安裝BDE。

+0

BDE是舊的,但與Delphi 2及其附帶的版本是一個純粹的32位解決方案,它的工作原理與XP,Vista或七,即使在64位版本。它的安裝程序有問題,但它正在工作。在所有情況下,BDE都被棄用,但它仍然適用於今天的操作系統(即使在Windows 2008 Server R2 64位上)也是令人印象深刻的。 –

1

bdeinst.dll使用Win32 API函數GetDiskFreeSpace,該函數在針對大於2GB的驅動器執行時可能會報告完全誤導性的值 - 有關基於開發人員的解決方法,請參閱http://support.microsoft.com/kb/202455

我知道這個的原因是因爲之前我曾經碰到它,並檢查了bdeinst.dll二進制文件的輸入,它指示它使用了GetDiskFreeSpaceA(這是ascii版本的函數)。

如果使用BDE,那麼你就必須接受,你可能會看到這個錯誤,當您嘗試安裝應用程序

+1

不,你不必被動地接受它,並讓你的方式讓你的客戶哭泣......有幾種解決方案可以在運行時通過修補BDE或應用程序本身來擺脫這種限制。 –

相關問題