mit "FDB" Modul auf Firebird Datenbank zugreifen.

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Ischias420
User
Beiträge: 1
Registriert: Sonntag 14. März 2021, 17:43

Hallo Zusammen,

gleich vorab- ich bin noch ein absoluter Noob in Sachen Python und das hier stellt meinen ersten, ernsthaften Versuch da, etwas produktives zu schreiben.
Jetzt zu meinem Problem:

Ich versuche auf eine Firebirddatenbank mit der Version 2.5 zuzugreifen (wir können leider noch nicht auf Version 3 updaten :( )
mein Code:

Code: Alles auswählen

con = fdb.connect(dsn='DESKTOP-FIMQGI7:D:\\TESTBP\\Datenbank\\Daten\\DBMDT001.fdb', port='59333', user='***', password='***')
leider bekomme ich, egal was ich versuche, immer folgenden Output:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Users/RA/PycharmProjects/TestProject2/main.py", line 2, in <module>
    con = fdb.connect(dsn='DESKTOP-FIMQGI7:D:\\TESTBP\\Datenbank\\Daten\\DBMDT001.fdb', port='59333', user='***', password='***')
  File "C:\ProgramData\Anaconda3\envs\TestProject2\lib\site-packages\fdb\fbcore.py", line 800, in connect
    load_api(fb_library_name)
  File "C:\ProgramData\Anaconda3\envs\TestProject2\lib\site-packages\fdb\fbcore.py", line 231, in load_api
    setattr(sys.modules[__name__], 'api', ibase.fbclient_API(fb_library_name))
  File "C:\ProgramData\Anaconda3\envs\TestProject2\lib\site-packages\fdb\ibase.py", line 1396, in __init__
    fb_library = WinDLL(fb_library_name)
  File "C:\ProgramData\Anaconda3\envs\TestProject2\lib\ctypes\__init__.py", line 381, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 ist keine zulässige Win32-Anwendung
kennt das jemand von Euch? Oder musste schonmal jemand auf eine FirebirdDB mit einer Version unter "3" zugreifen?
Benutzeravatar
__blackjack__
User
Beiträge: 14336
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Ischias420: Kann es sein, dass die Datenbank, beziehungsweise die C-Bibliothek für die Anbindung 64 Bit ist und Dein Python 32 Bit?

Du könntest mit einem Debugger herausfinden welche Datei da mit `_dlopen()` geöffnet werden soll.
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
Antworten