FirebirdSQL/問答篇/客戶端的最小安裝

出自VFP Wiki

(修訂版本間差異)
跳轉到: 導航, 搜尋
(revert)
 
(4個中途的修訂版本沒有顯示)
第13行: 第13行:
正如安裝伺服器端的要求一樣,在安裝GDS32.DLL之前,你必須確保系統中沒有該檔。你應該在如下的位置中以列出的順序尋找GDS32.DLL:
正如安裝伺服器端的要求一樣,在安裝GDS32.DLL之前,你必須確保系統中沒有該檔。你應該在如下的位置中以列出的順序尋找GDS32.DLL:
-
Windows系統目錄,InterBase 6.x(以及4.x)安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\Borland\InterBase\Current Version下的RootDirectory�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=RootDirectory%E4">???被指定)或InterBase 5.x安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\InterBase Corp\InterBase\Current Version下的RootDirectory�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=RootDirectory%E4">???被指定),路徑環境變數,BDE目錄(HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\DLLPATH)等。
+
Windows系統目錄,InterBase 6.x(以及4.x)安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\Borland\InterBase\Current Version下的RootDirectory被指定)或InterBase 5.x安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\InterBase Corp\InterBase\Current Version下的RootDirectory被指定),路徑環境變數,BDE目錄(HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\DLLPATH)等。
如果你發現有GDS32.DLL,你應該檢查它的版本資訊。如果沒有版本資訊,那麼該GDS32.DLL來自於IB 4.0或4.1。如果你發現目前安裝的是IB 4.0或4.1版本,你應該停止安裝並要求用戶先刪除前一版本的IB然後再重新運行安裝程式。最好是告訴用戶你在哪里找到了GDS32.DLL,以便於他們刪除。
如果你發現有GDS32.DLL,你應該檢查它的版本資訊。如果沒有版本資訊,那麼該GDS32.DLL來自於IB 4.0或4.1。如果你發現目前安裝的是IB 4.0或4.1版本,你應該停止安裝並要求用戶先刪除前一版本的IB然後再重新運行安裝程式。最好是告訴用戶你在哪里找到了GDS32.DLL,以便於他們刪除。
第29行: 第29行:
如果你安裝了GDS32.DLL,你應該也同時安裝INTERBASE.MSG;而如果你沒有安裝GDS32.DLL(可能是因為你的版本比較舊),你也不應該安裝INTERBASE.MSG。
如果你安裝了GDS32.DLL,你應該也同時安裝INTERBASE.MSG;而如果你沒有安裝GDS32.DLL(可能是因為你的版本比較舊),你也不應該安裝INTERBASE.MSG。
-
如果已經存在一個版本的InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%EF">???你應該將INTERBASE.MSG安裝到那個目錄中去。檢查是否存在某版本的InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%EF">???請參見上文所列出搜索目錄。如果沒有找到任何一個版本的InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%EF">???那麼可以將InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%E5">???裝到%INTERBASE%(IB 6的缺省安裝目錄是c:\Program Files\Borland\InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%EF">???目錄中。.
+
如果已經存在一個版本的InterBase,你應該將INTERBASE.MSG安裝到那個目錄中去。檢查是否存在某版本的InterBase.請參見上文所列出搜索目錄。如果沒有找到任何一個版本的InterBase,那麼可以將InterBase裝到%INTERBASE%(IB 6的缺省安裝目錄是c:\Program Files\Borland\InterBase目錄中。.
當然,你也要更新INTERBASE.MSG的 共用DLL註冊表值(引用計數) 。
當然,你也要更新INTERBASE.MSG的 共用DLL註冊表值(引用計數) 。
第35行: 第35行:
安裝MSVCRT.DLL
安裝MSVCRT.DLL
-
MSVCRT.DLL是Microsoft C運行時DLL庫(這可能是因為最初InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%E4">??? 為獨立開發廠商時使用的是微軟的開發工具)。你的系統上很可能已經有了這個DLL。我家裏的電腦上不同的目錄裏有該DLL的五個拷貝(大部分都是錯誤安裝的結果,因為它應該安裝在Windows系統目錄中,你可以注意到甚至連IOMEGA,DREAMWEAVER這樣的安裝程式也會隨意地安裝 MSVCRT.DLL到它們自己的目錄中去!)。InterBase�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=InterBase%E8">???求的該DLL的版本是5.00.7303或更高(所幸的是在我Windows系統目錄中最新的版本是6.1.8637),這也是Borland分發InterBase 6 beta時所採用的版本。5.00.7303版本的MSVCRT.DLL已經很古老了,所以必須檢查該DLL的版本,避免用舊的版本去覆蓋新的版本。
+
MSVCRT.DLL是Microsoft C運行時DLL庫(這可能是因為最初InterBase為獨立開發廠商時使用的是微軟的開發工具)。你的系統上很可能已經有了這個DLL。我家裏的電腦上不同的目錄裏有該DLL的五個拷貝(大部分都是錯誤安裝的結果,因為它應該安裝在Windows系統目錄中,你可以注意到甚至連IOMEGA,DREAMWEAVER這樣的安裝程式也會隨意地安裝 MSVCRT.DLL到它們自己的目錄中去!)。InterBase要求的該DLL的版本是5.00.7303或更高(所幸的是在我Windows系統目錄中最新的版本是6.1.8637),這也是Borland分發InterBase 6 beta時所採用的版本。5.00.7303版本的MSVCRT.DLL已經很古老了,所以必須檢查該DLL的版本,避免用舊的版本去覆蓋新的版本。
注意:如果你使用Microsoft安裝程式(Borland執行程式安裝包用的就是MSI)在Windows 2000伺服器上來安裝MSVCRT.DLL,那麼會有一個問題。其表現是即使安裝程式檢查了版本資訊,安裝程式還是會用老的5.00.7303版本覆蓋當前版本。這可能會引起諸如Microsoft SQL Server這樣的程式工作不正常。如果你不使用MSI,當然不會有這個問題。有鑒於此,Borland更新了安裝程式,IB6安裝程式在Windows 2000下將不再嘗試安裝該DLL檔。
注意:如果你使用Microsoft安裝程式(Borland執行程式安裝包用的就是MSI)在Windows 2000伺服器上來安裝MSVCRT.DLL,那麼會有一個問題。其表現是即使安裝程式檢查了版本資訊,安裝程式還是會用老的5.00.7303版本覆蓋當前版本。這可能會引起諸如Microsoft SQL Server這樣的程式工作不正常。如果你不使用MSI,當然不會有這個問題。有鑒於此,Borland更新了安裝程式,IB6安裝程式在Windows 2000下將不再嘗試安裝該DLL檔。
第45行: 第45行:
一旦你安裝好了IB用戶端,你就要開始更新IB所使用的註冊表專案。以下是IB要用到的註冊表項目:
一旦你安裝好了IB用戶端,你就要開始更新IB所使用的註冊表專案。以下是IB要用到的註冊表項目:
-
HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current?? Version/Root Directory應該設置為IB的安裝目錄。特別需要注意的是,如果你在Windows 9x/Me平臺上安裝IB,那麼在設置安裝目錄的字串時要在最後加一個“\”,否則IB伺服器管理器將無法啟動IB伺服器。也就是說,你的IB安裝目錄應該型如:C:\Program Files\3asoft\Interbase65\。這並不是IB的錯誤!而是由於Windows在基於9x平臺的系統和基於NT平臺的系統中對諸如GetCurrentDirectory�?�� href="http://wiki.sunyear.com.tw/index.php?action=edit&page=GetCurrentDirectory%E7">???處理不同而造成的。所以在你的安裝程式中應該對IB安裝的平臺加以判斷而區別對待;
+
HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current Version/Root Directory應該設置為IB的安裝目錄。特別需要注意的是,如果你在Windows 9x/Me平臺上安裝IB,那麼在設置安裝目錄的字串時要在最後加一個“\”,否則IB伺服器管理器將無法啟動IB伺服器。也就是說,你的IB安裝目錄應該型如:C:\Program Files\3asoft\Interbase65\。這並不是IB的錯誤!而是由於Windows在基於9x平臺的系統和基於NT平臺的系統中對諸如GetCurrentDirectory處理不同而造成的。所以在你的安裝程式中應該對IB安裝的平臺加以判斷而區別對待;
HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current?? Version/Version應該設置為所安裝的IB的版本,如“WI-V6.5.0.0”
HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current?? Version/Version應該設置為所安裝的IB的版本,如“WI-V6.5.0.0”

在2005年4月18日 (一) 01:51的最新修訂版本

TR在CSDN上的答復:

==========

用戶端的最小安裝

IB用戶端的最小安裝看上去簡直是小菜一碟,因為只需要安裝三個檔(GDS32.DLL,INTERBASE.MSG和MSVCRT.DLL)。不過,要想正確地安裝這三個檔,還需要注意一些事情。我們先從GDS32.DLL開始。

安裝GDS32.DLL

GDS32.DLL是用戶端應用程式使用的介面庫。如果你安裝了GDS32.DLL也一定要安裝INTERBASE.MSG(參見下文的“安裝INTERBASE.MSG”)。

正如安裝伺服器端的要求一樣,在安裝GDS32.DLL之前,你必須確保系統中沒有該檔。你應該在如下的位置中以列出的順序尋找GDS32.DLL:

Windows系統目錄,InterBase 6.x(以及4.x)安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\Borland\InterBase\Current Version下的RootDirectory被指定)或InterBase 5.x安裝目錄(應該在HKEY_LOCAL_MACHINE\SOFTWARE\InterBase Corp\InterBase\Current Version下的RootDirectory被指定),路徑環境變數,BDE目錄(HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\DLLPATH)等。

如果你發現有GDS32.DLL,你應該檢查它的版本資訊。如果沒有版本資訊,那麼該GDS32.DLL來自於IB 4.0或4.1。如果你發現目前安裝的是IB 4.0或4.1版本,你應該停止安裝並要求用戶先刪除前一版本的IB然後再重新運行安裝程式。最好是告訴用戶你在哪里找到了GDS32.DLL,以便於他們刪除。

大部分安裝包都有替換檔的選項讓你在替換一個檔之前可以檢查版本的資訊。你可以用新版本的檔替換舊版本,但是永遠不要用老版本的檔替換現有的DLL。

如果你發現可以安裝GDS32.DLL,那麼應該將它安裝在%SYSTEM32%目錄中。

記得要更新GDS32.DLL的共用檔引用計數。

安裝INTERBASE.MSG

INTERBASE.MSG包含了用戶端和伺服器錯誤資訊的文本。很重要的一點是你要保證所安裝的GDS32.DLL和 INTERBASE.MSG的版本必須保持一致。

如果你安裝了GDS32.DLL,你應該也同時安裝INTERBASE.MSG;而如果你沒有安裝GDS32.DLL(可能是因為你的版本比較舊),你也不應該安裝INTERBASE.MSG。

如果已經存在一個版本的InterBase,你應該將INTERBASE.MSG安裝到那個目錄中去。檢查是否存在某版本的InterBase.請參見上文所列出搜索目錄。如果沒有找到任何一個版本的InterBase,那麼可以將InterBase裝到%INTERBASE%(IB 6的缺省安裝目錄是c:\Program Files\Borland\InterBase目錄中。.

當然,你也要更新INTERBASE.MSG的 共用DLL註冊表值(引用計數) 。

安裝MSVCRT.DLL

MSVCRT.DLL是Microsoft C運行時DLL庫(這可能是因為最初InterBase為獨立開發廠商時使用的是微軟的開發工具)。你的系統上很可能已經有了這個DLL。我家裏的電腦上不同的目錄裏有該DLL的五個拷貝(大部分都是錯誤安裝的結果,因為它應該安裝在Windows系統目錄中,你可以注意到甚至連IOMEGA,DREAMWEAVER這樣的安裝程式也會隨意地安裝 MSVCRT.DLL到它們自己的目錄中去!)。InterBase要求的該DLL的版本是5.00.7303或更高(所幸的是在我Windows系統目錄中最新的版本是6.1.8637),這也是Borland分發InterBase 6 beta時所採用的版本。5.00.7303版本的MSVCRT.DLL已經很古老了,所以必須檢查該DLL的版本,避免用舊的版本去覆蓋新的版本。

注意:如果你使用Microsoft安裝程式(Borland執行程式安裝包用的就是MSI)在Windows 2000伺服器上來安裝MSVCRT.DLL,那麼會有一個問題。其表現是即使安裝程式檢查了版本資訊,安裝程式還是會用老的5.00.7303版本覆蓋當前版本。這可能會引起諸如Microsoft SQL Server這樣的程式工作不正常。如果你不使用MSI,當然不會有這個問題。有鑒於此,Borland更新了安裝程式,IB6安裝程式在Windows 2000下將不再嘗試安裝該DLL檔。

你應該將MSVCRT.DLL檔安裝在%SYSTEM32%目錄下,同時也不要忘記更新該DLL的引用計數。

修改註冊表

一旦你安裝好了IB用戶端,你就要開始更新IB所使用的註冊表專案。以下是IB要用到的註冊表項目:

HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current Version/Root Directory應該設置為IB的安裝目錄。特別需要注意的是,如果你在Windows 9x/Me平臺上安裝IB,那麼在設置安裝目錄的字串時要在最後加一個“\”,否則IB伺服器管理器將無法啟動IB伺服器。也就是說,你的IB安裝目錄應該型如:C:\Program Files\3asoft\Interbase65\。這並不是IB的錯誤!而是由於Windows在基於9x平臺的系統和基於NT平臺的系統中對諸如GetCurrentDirectory處理不同而造成的。所以在你的安裝程式中應該對IB安裝的平臺加以判斷而區別對待;

HKEY_LOCAL_MACHINE/SOFTWARE/Borland/InterBase/Current?? Version/Version應該設置為所安裝的IB的版本,如“WI-V6.5.0.0”

更新TCP/IP服務檔

如果你的用戶端程式將要使用TCP/IP協定來連接IB伺服器,必須確保在用戶端的服務檔中包含gds_db項目。服務檔的名稱是 “services”(沒有尾碼)。在Windows 9x/ME平臺下,它位於Windows安裝目錄中;而在Windows NT/2000/XP平臺下,它位於System32/drivers/etc目錄下。如果在該檔中不存在gds_db專案,那麼應該將下一行的內容填加到services檔裏去:

gds_db 3050/tcp # InterBase

請千萬不要輕易地覆蓋services檔!這麼做的話,後果是其他應用程式可能無法正常運行