【发布时间】:2016-06-05 06:04:18
【问题描述】:
我想用 python 访问一个 gdb 文件。 我是 firebird 和 interbase 的新手。
我可以使用以下命令访问我的文件:(Debian 8.4) isql-fb mydb.gdb
如何使用 Python 连接到同一个文件? 我尝试了 fdb 和 kinterbasdb 并且总是收到错误消息:
我已经尝试过以下几行:
con = fdb.connect(dsn='/home/bruno/Desktop/mydb.gdb')
con = fdb.connect(dsn='localhost:/home/bruno/Desktop/mydb.gdb')
con = fdb.connect(dsn='/home/bruno/Desktop/mydb.gdb', user='SYSDBA', password='*****')
错误总是这样的:
fdb.fbcore.DatabaseError: ('Error while connecting to database:\n- SQLCODE: -902\n- Your user name and password are not defined. Ask your database administrator to set up a Firebird login.', -902, 335544472)
感谢您的帮助
【问题讨论】:
-
您确定第三次尝试中的
user和password正确吗? -
是的,没错。我可以在没有用户名和密码的情况下访问原始文件。 gdb 文件不是在我的电脑上制作的,我只是让它在上面工作。
-
哪个 Firebird 版本?注意,通过 Firebird 服务器连接时需要用户名和密码;仅在使用 Firebird 3 嵌入式时将其排除在外,因此您的前两个连接字符串可能无效。另请注意,通过服务器连接时,服务器需要访问数据库文件的位置。
-
最后,Firebird 和 Interbase 是不一样的。 Firebird 是在 2000 年从 Interbase 分叉出来的,虽然有相似之处,但它们并不相同,而且 Firebird 和 Interbase 之间不能共享数据库。
-
我可以使用 SELECT 命令的唯一方法是: sudo isql-fb mydb.gdb 没有 sudo 不起作用。我必须使用 python 进行此查询。