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: 13004
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.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten