使用 NodeJS 访问 Firebird 数据库时出现未知 table 错误
Unknown table error accessing Firebird database with NodeJS
我需要编写脚本将数据从 Firebird 2.5 迁移到 mySQL。我正在尝试:
const Firebird = require('node-firebird')
const options = {
host: '127.0.0.1',
port: 3050,
database: 'database.gdb',
user: 'SYSDBA',
password: 'masterkey',
lowercase_keys: false,
role: null,
pageSize: 4096
}
Firebird.attach(options, function(err,db){
if(err) throw err
db.execute("SELECT * from CLIENTE", function(err,result){
if(err) throw err
})
})
但我一直收到错误消息:
Error: Dynamic SQL Error, SQL error code = -204, Table unknown, CLIENTE, At line 1, column 10
现在,类似的问题已经被问过两次了...
此处:
这里:firebird isql: "there is no table XXXX in this database"
...但在那些情况下,问题是 table 通过声明 "between quotes" 区分大小写。我的不是,因为 DDL 的第一行(用 Flamerobin 提取)将显示...
CREATE TABLE CLIENTE
(
CLIENTE_ID integer NOT NULL,
CODIGO varchar(10),
TIPO_CLIENTE varchar(1),
NOME varchar(40),
...
我可以毫无问题地使用 IBExpert、Flamerobin 和 isql 访问数据库(但不能使用 firebird python 驱动程序)。在这一点上,我不知道还能做什么,非常感谢您的帮助。
我猜您正在连接到与您想象的不同的数据库。确保您真正连接到与在 FlameRobin 中相同的数据库。我注意到您指定了 - 看起来像 - 数据库的相对路径。相对路径是相对于某些 config/installation 特定位置解析的,例如,当通过 Firebird 服务器连接时相对于其安装文件夹(IIRC,未验证),当使用 Firebird Embedded 连接时,相对于应用程序当前工作目录,等等
你真的应该使用绝对路径,或者更好的别名(Firebird 2.5 及更低版本在 aliases.conf 中定义,Firebird 3 及更高版本在 databases.conf 中定义)。
我需要编写脚本将数据从 Firebird 2.5 迁移到 mySQL。我正在尝试:
const Firebird = require('node-firebird')
const options = {
host: '127.0.0.1',
port: 3050,
database: 'database.gdb',
user: 'SYSDBA',
password: 'masterkey',
lowercase_keys: false,
role: null,
pageSize: 4096
}
Firebird.attach(options, function(err,db){
if(err) throw err
db.execute("SELECT * from CLIENTE", function(err,result){
if(err) throw err
})
})
但我一直收到错误消息:
Error: Dynamic SQL Error, SQL error code = -204, Table unknown, CLIENTE, At line 1, column 10
现在,类似的问题已经被问过两次了...
此处:
这里:firebird isql: "there is no table XXXX in this database"
...但在那些情况下,问题是 table 通过声明 "between quotes" 区分大小写。我的不是,因为 DDL 的第一行(用 Flamerobin 提取)将显示...
CREATE TABLE CLIENTE
(
CLIENTE_ID integer NOT NULL,
CODIGO varchar(10),
TIPO_CLIENTE varchar(1),
NOME varchar(40),
...
我可以毫无问题地使用 IBExpert、Flamerobin 和 isql 访问数据库(但不能使用 firebird python 驱动程序)。在这一点上,我不知道还能做什么,非常感谢您的帮助。
我猜您正在连接到与您想象的不同的数据库。确保您真正连接到与在 FlameRobin 中相同的数据库。我注意到您指定了 - 看起来像 - 数据库的相对路径。相对路径是相对于某些 config/installation 特定位置解析的,例如,当通过 Firebird 服务器连接时相对于其安装文件夹(IIRC,未验证),当使用 Firebird Embedded 连接时,相对于应用程序当前工作目录,等等
你真的应该使用绝对路径,或者更好的别名(Firebird 2.5 及更低版本在 aliases.conf 中定义,Firebird 3 及更高版本在 databases.conf 中定义)。