2009-08-25 108 views
3

我開發了一個應用程序,使用Delphi和Firebird 1.5,其中服務器與應用程序位於同一臺機器上。我現在正在將應用程序部署到另一個站點,Firebird服務器(Superserver)在一臺機器上運行(NT4),而客戶機在另一臺機器上運行。火鳥別名

應用程序可以連接到數據庫,如果我在申請(t:\db\cinema.gdb)合格的路徑,但當然我更願意使用別名,所以相同的代碼將自己的計算機上運行(與本地服務器)。

於是,兩個問題:

  1. 的「aliases.conf」文件應該在哪裏存在 - 每臺機器上沿與應用程序,或在服務器上?
  2. 別名應該是什麼? cinema = t:\db\cinema.gdb,假設數據庫在映射的驅動器上? cinema = 192.168.2.121:f:firebird\db\cinema.gdb,當服務器看到它時,使用服務器的IP地址和數據庫的路徑?

回答

3

aliases.conf應該只在服務器上。 而且您應該始終使用完整的地址,以及IP和服務器上數據庫的完整路徑。由於驅動器映射可能會發生變化(並且當您最不期待它們時,它們總是會這樣做),因此將它們用作應該位於固定位置的文件或數據庫的引用並不是一個好主意。 就我個人而言,我不會在我的C++ Builder/Firebird應用程序中使用別名,而只是在程序ini文件中或作爲註冊表項(在課程的客戶端)設置完整路徑。 ini文件無論如何都是有的,我不會在aliases.conf文件中創建另一個依賴關係。

+0

我曾考慮過ini文件選項,但認爲它是一種解決方法。這也必須爲每個用戶設置,而別名文件服務於每個人 - 沒有。 – 2009-08-25 09:12:32

7
  1. 別名文件存在於服務器上!
  2. 別名直接映射到文件,例如, cinema = c:\firebird\db\cinema.fdb。不要使用映射的驅動器,這會降低性能。客戶端連接數據庫名稱servername:alias
+0

我應該在應用程序中使用字符串'localhost:cinema'嗎?我假設'本地主機'是指本地計算機,而不是遠程服務器。 – 2009-08-25 09:11:04