1. 程式人生 > >在64位系統上部署BDE的要點

在64位系統上部署BDE的要點

首先,據我所知,Borland/CodeGear沒有釋出過支援64bit windows的BDE安裝包,如果你在網上看到了相關的BDE安裝包,很有可能是使用者自己重新打包釋出的。

無論是在32bit windows還是64bit windows下,釋出BDE關鍵是以下幾點
1:將BDE相關檔案釋出到目標機器上的特定資料夾下。
2:在目標機器上建立指定的登錄檔鍵值
3:在目標機器上建立BDEAdministrator的快捷方式和關聯檔案的開啟方式

下面詳細說一下其中每一步驟。
1:在釋出BDE相關檔案之前,首先你需要在自己的機器上獲得BDE的檔案。如果你本機已經安裝了Delphi(這裡,將以Delphi 7為例,在其他版本的Delphi中獲得BDE檔案的方式大致相同,但可能會有名稱Borland與CodeGear之間的差別,實際遇到時,稍微注意即可),你可以在登錄檔 HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine 鍵值[DLLPath]下獲得本機BDE的安裝路徑,預設情況下,BDE會被安裝在 C:\Program Files\Common Files\Borland Shared\BDE 。簡單情況,只需要將該資料夾下所有檔案都複製到目標機器上,即可保證目標機器上就擁有了BDE所有必需檔案。

在目標機器上,BDE的安裝資料夾是可選的,不一定要安裝在%system%\Program Files\Common Files\Borland Shared(對於64bit OS也不一定要安裝在 %system%\Program Files(x86)\Common Files\Borland Shared)。由於BDE驅動和BDE administrator能否正確被呼叫是依賴於登錄檔的鍵值,所以只需要在目標機器的登錄檔 HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine  鍵值[DLLPath]下指定BDE檔案所在的絕對路徑即可(這裡就是絕對路徑,不考慮32/84bit OS下訪問系統檔案可能出現的重定向)。

2:在目標機器上建立登錄檔鍵,既可以通過登錄檔檔案自動匯入,也可以通過安裝程式來建立。
如果,只是希望簡單的獲得登錄檔檔案的話,可以在一臺已經安裝了Delphi或BDE的機器上,匯出登錄檔 [HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine] 下所有鍵,然後將匯出的登錄檔檔案手工或在安裝程式中自動匯入到目標機器上即可。

注意,在目標機器上匯入登錄檔鍵時,32bit OS和64bit OS是有區別的。對於64bit OS,應該將登錄檔檔案匯入到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node 鍵下,因為32bit應用程式只能訪問 [Wow6432Node] 下的鍵值。這個區別可能會影響到你在使用安裝包建立登錄檔的方式,如果沒有建立在正確的路徑之下,則會影響到當你試圖開啟BDE config檔案時,尋找不到正確的BDE Administrator程式。

在建立完登錄檔鍵值後,不要忘記在目標機器上開啟登錄檔編輯器,設定相關登陸賬號的使用許可權。

3:在目標機器上建立BDE Administrator和關聯BDE config檔案開啟方式。
如果目標機器是64bit系統的話,請不要新增BDE administrator的快捷方式新增到control panel icon,因為32bit下的cpl檔案在64bit下可能不能正常工作,你可以選擇將其新增到開始選單欄,開始選單的位置在%allusersprofile%\start menu\bdeadmin.lnk。

另外,對於64bit系統你還需要特別做如下設定。
開啟 Control Panel \ Administrative Tools \ Local Security Policy \ Security Options \ 找到 [User Account Control: Virtualize file and registry write failures to per-user locations] ,將這一項設定為 enable 。這一步很重要,因為如果不重要設定的話,你在切換BDE檔案的時候,BDEAdmin總是開啟錯誤的BDE CFG檔案,其值被儲存在登錄檔中一個虛擬儲存鍵值下,而不是BDE的鍵值。

以上三步安裝步驟完成後,如果你使用的是64bit OS,當你需要建立一個ODBC的alias時,你首先需要開啟的時候32bit 版本的ODBC Administrator,該版本的ODBC程式可以在以下目錄找到 C:\Windows\SysWOW64\odbcad32.exe。在你配置ODBC的DSN時有一點需要注意一下,就是DSN分為system DSN和user DSN兩類,如果建立為user DSN時,則該DSN只能在當前系統賬號下可被訪問到,當切換賬號時,則不可訪問,如果你所配置說道BDE config檔案中有alias用到user DSN,則當切換系統賬號後,很有可能該BDE config檔案中的alias不可用。如果希望BDE config檔案中的alias可以用在多個系統賬號下,則將其使用到的DSN建立為system DSN即可。