使用 Python 在 Windows 上连接到 Firebird

Connecting to Firebird on Windows with Python

我已经脑袋坏了,问题出在哪里呢

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

我得到了这个结果。 已经尝试了所有变体:使用字符集 utf8,win1251:使用 dsn,使用单独的主机和数据库参数。 运行 ubuntu 下的 windows 脚本。没有任何帮助。

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

我发现了问题(@MarkRotteveel 通过他的评论证实了这一点)。 我的解决方案是从旧版 2.0.5!

更新到版本 2.5.x

在官方页面http://www.firebirdsql.org/en/devel-python-driver/ 作者写道,支持 2.0 及更高版本,理论上所有版本都应该适用于 2.0.5 没有任何问题,但在这种情况下不是。

可能是 Win10、python3.6 和 firebird 2.0.5 的组合问题。