2017-05-20 8 views
0

Ich brach bereits meinen Kopf, wo ist das Problem.Verbinden mit Firebird unter Windows mit Python

import fdb 
con = fdb.connect(host='localhost', 
         database='//soulu.fdb', 
         user='sysdba', 
         password='masterkey', 
         charset='WIN1251' 
        ) 

Und ich bekomme dieses Ergebnis. Bereits alle Varianten getestet: mit charset utf8, win1251: benutze dsn, verwende separate Host- und Datenbankparameter. Führen Sie das Skript unter Ubuntu für Windows aus. Nichts hilft.

Traceback (most recent call last): 
    File "C:\Users\ko-ov\Documents\Albatros\db for upload\loader.py", line 8, in <module> 
    charset='WIN1251' 
    File "C:\Users\ko-ov\AppData\Local\Programs\Python\Python36-32\lib\site-packages\fdb\fbcore.py", line 734, in connect 
    "Error while connecting to database:") 
    File "C:\Users\ko-ov\AppData\Local\Programs\Python\Python36-32\lib\site-packages\fdb\fbcore.py", line 560, in exception_from_status 
    msglist.append('- ' + (msg.value).decode('utf_8')) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte 
+1

Welche Version von Firebird und welche Version von FDB? –

+1

@MarkRotteveel Vielen Dank! Habe bereits eine Wurzel des Problems gefunden :) Wirklich, Version 2.0.5 ist sehr-sehr alt und wurde auf meinem Laptop installiert (Nur ein seltenes und altes Programm benutzt diese Version standardmäßig und installiert sie im System). Ich habe auf 2.5.x aktualisiert und alles in Ordnung. – konstov

Antwort

1

Ich habe das Problem gefunden (und @MarkRotteveel bestätigen es durch seinen Kommentar). Die Lösung für mich ist ein Update auf Version 2.5.x von älteren 2.0.5!

Auf der offiziellen Seite http://www.firebirdsql.org/en/devel-python-driver/ Autoren schreiben, dass Versionen 2.0 und später unterstützt werden, und theoretisch sollte alles für 2.0.5 ohne jedes Problem funktionieren, aber nicht in diesem Fall.

Kann Problem in Kombination von Win10, Python 3.6 und Firebird 2.0.5 sein.

+0

Meine Vermutung ist, dass einige Änderungen für die Firebird 3-Unterstützung vorgenommen wurden, die für Firebird 2.5 funktionieren, aber unter bestimmten Umständen nicht für frühere Versionen funktionieren (zB die Verwendung von UTF-8 im Verbindungs-Handshake wurde in 2.5 optional eingeführt) ist jetzt - iirc - erforderlich für Firebird 3) –

+1

@konstov - registriere dein Problem im Tracker, damit es auf die eine oder andere Weise behoben wird - http://tracker.firebirdsql.org/secure/IssueNavigator.jspa?reset=true&mode = verstecken & sortieren/order = DESC & Sortierer/Feld = Priorität & Auflösung = -1 & pid = 10010 & fixfor = -1 –

Verwandte Themen