2010-12-04 127 views
1

我正在運行Windows 7的新計算機上安裝Firebird(v1.5.5 - 我知道它已經很久了,但工作正常)。我已經將經典服務器版本作爲服務安裝。根據Firebird網站的文檔,我修改了firebird.conf文件,以使IPCName成爲全局\ FirebirdIPI;我在服務沒有運行的時候做了這個。無法運行火鳥

儘管我所有的努力,我一直無法訪問我通過ISQL複製到這臺新計算機的任何數據庫。 FWIW,EMS SQL 2005管理程序成功訪問數據庫,但該程序顯然有一個不需要fbclient.dll的直接方法。

我還應該檢查什麼?


幾天後更新。在Windows 7浪費大量時間之後,我們決定降級計算機並運行XP。在安裝超級版本的FB 1.5.5之後,我可以運行我的程序並訪問存儲在此計算機上的的數據庫。嘗試從網絡上連接的其他計算機訪問數據庫失敗時會出現各種錯誤消息,但通常類似於「文件!firebird!\ db \ q400.fdb」的I/O錯誤。

爲了讓網絡上的人可以繼續訪問數據庫,我重新啓動了NT服務器並啓動了Firebird服務 - 所有程序都可以從遠程計算機成功訪問這些數據庫!

爲了簡化問題,有三個網絡上的計算機:

  1. NT服務器(「zorcomp」),這是運行火鳥服務; fdb文件位於名爲'db'的目錄中,該目錄位於名爲'firebird'的共享目錄下,該目錄位於名爲'kivserver'的運行XP的計算機上,該共享目錄名爲'firebird',並且在該目錄下面一個名爲'程序'的目錄。所有fdb文件的副本都駐留在名爲'db'的目錄中。
  2. 運行XP的計算機,它將\ zorcomp \ firebird映射到磁盤L:和\ kivserver \ firebird到磁盤T.從這臺計算機上,我可以運行一個坐在T:\程序中的程序,並讓它成功訪問一個文件坐在L:\ db。如果我停止zorcomp上的FB服務並在kivserver上啓動相同的服務,則同一程序無法訪問位於T:\ db中的文件。

我希望這已經夠清楚了。對於我來說,我看不到\ kivserver \ firebird中的所有文件與\ zorcomp \ firebird中的文件有什麼不同 - 但不知何故它們有所不同!

顯然,我不希望這種安排繼續 - NT服務器必須光榮退役。

進一步編輯。我現在有'kivserver'(NT)上運行的firebird服務器。我可以在本地訪問數據庫文件。

運行Win7的計算機現在可以使用連接字符串\\ kivserver \ firebird \ db \ database.fdb訪問這些數據庫文件。

運行XP的計算機無法訪問這些數據庫文件,儘管IIRC wisql確實成功了\\ kivserver \ firebird \ db \ database.db。

NT服務器已從網絡斷開連接。 TIA, No'am

+0

儘管我的答案是,我想說我在Windows 7中使用Firebird 2.1,並且從未觸及任何東西以使其正常工作......您確定仍然想使用Firebird 1.5嗎?我相信你可以直接用Firebird 2打開Firebird 1.5文件(ODS),但我沒有人測試。 – jachguate 2010-12-04 23:27:53

+0

我真正想要的是我的程序(用Delphi編寫)可以訪問數據庫。他們使用與Firebird 1.5一起使用的組件。 – 2010-12-05 05:15:04

回答

0

幾個月後,NT服務器在有人不小心將其意外拔出後顯示'MBR錯誤'時重新啓動,有些突然退休。因此,我沒有選擇,只能開始在'kivserver'上運行Firebird服務器程序。連接問題返回。

最終我能與下面的連接字符串

10.0.0.202:e:\firebird\db\manager.fdb

其中10.0.0.202是IP解決問題服務器地址,以及e:\ firebird \ db數據庫所在的目錄,相對於服務器本身。

我希望別人有時候會發現這些信息有用。

0

AFAIK EMS SQL使用fbclient.dll(或其周圍的包裝器)。

如果你只想訪問數據庫,我建議你使用TCP協議而不是本地協議。要做到這一點連這樣的:

c:\>isql localhost:c:\path\to\db.fdb -u sysdba -p masterkey 

除非你避免TCP或本機啓用了沒有本地接口,它會做的工作適合你。

0

嘗試使用此連接到您的數據庫:

主機名:驅動器:\完整路徑\ filename.fdb

\主機名\驅動器\完整路徑\ filename.fdb

我可以知道你使用的組件嗎?

0

如果您的客戶端的Windows 7,那麼你可以嘗試使用\\主機名\共享名\的filename.fdb代替驅動器:\ filename.fdb連接字符串。