簡體   English   中英

從Windows本地網絡連接到Firebird數據庫

[英]Connecting to Firebird database from Windows local network

我已經寫了一個小型的Python應用程序了幾周了。 該應用程序從Firebird數據庫讀取數據,並將其復制到另一個DB。 我正在使用嵌入式Firebird的FDB。

這是我的連接代碼。

def createConnectionTo(path):
    try:
        connection = fdb.connect(
            database=path,
            user='SYSDBA',
            password='masterkey',
            charset='WIN1252'
        )
        print("Connessione al database riuscita!\n")
        return connection
    except fdb.fbcore.DatabaseError as details:
        errorMsg = "ERRORE: impossibile connettersi al database!\nPer favore scegliere un altro file.\n\nDETTAGLI\n"+str(details).replace("\\n", "\n")+"\n"
        print(errorMsg)
        return False
    except fdb.fbcore.ProgrammingError as details:
        errorMsg = "ERROR: bad parameters value!\nPlease check your connection code.\nDETAILS: "+str(details)+"\n"
        print(errorMsg)
        return False
    except Exception as errorMsg:
        print("ERRORE: "+str(errorMsg))
        input("Premi un ENTER per chiudere la finestra.")
        return -1

該代碼適用於我計算機內的文件夾,但莫名其妙地不適用於我們本地網絡中共享的文件夾。 我使用os.path.exists()檢查Python是否能夠找到所選的共享文件夾,並且它始終返回True。

我一直收到此錯誤,而且我不知道如何解決該錯誤,即使我懷疑它與斜杠轉換問題有些相關。

('Error while connecting to database:
- SQLCODE: -902
- I/O error during "CreateFile (open)" operation for file "Danea Easyfatt\\ANYMA 2017 dal 06-02-17.eft"
- Error while trying to open file
- Impossibile trovare il percorso specificato. ', -902, 335544344)

我嘗試了以下所有方式來鍵入路徑:

  • \\\\ CENTRALE \\ Danea Easyfatt \\ ANYMA 2017年6月2日至17日。
  • // CENTRALE / Danea Easyfatt / ANYMA 2017 dal 06-02-17.eft
  • \\\\\\ CENTRALE \\\\ Danea Easyfatt \\\\ ANYMA 2017年6月2日至17日。

他們都沒有工作。

您不能訪問網絡共享上的數據庫。 Firebird明確禁止這樣做* 但是,據我所知,顯示的錯誤僅表示您試圖使用無效的路徑來訪問文件。

如果要通過網絡連接到Firebird數據庫,則應連接到托管該數據庫的系統上的Firebird服務器。 這意味着要運行Firebird服務器,而不要使用Firebird Embedded。

*:您可以將Firebird配置為允許在網絡驅動器上打開數據庫,但是如果多個進程試圖從不同的主機修改數據庫,這是破壞數據庫的好方法,這是您實際上不應該執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM