Firebird错误,错误代码=-206列未知



我使用带有Delphi的IBDac连接到Firebir数据库,突然当我试图运行软件时,我得到了这个错误

动态SQL错误SQL错误代码=-206列未知表1.MyField_ID第6行第18列

当我尝试打开数据集时,错误显示

mydataset.open;

该列当然存在。它是另一个表的外键。我真的不知道为什么我会犯这个错误!!这是我在组件中使用的SQL:

CREATE TABLE table1 (
pkfield1 INTEGER NOT NULL,
field_no INTEGER NOT NULL,
fk1_id INTEGER NOT NULL,
fk2_id INTEGER,
MyField_ID INTEGER,
bfield INTEGER);     
select 
table1.pkfield1,
table1.field_no,
table1.fk1_id,
table1.fk2_id,
table1.MyField_ID, <<<------- the field that cause the error
table1.bfield,
table2.desc1,
table2.desc2,
table2.desc3
from table2
right outer join table1 on (table2.pk1_id = table1.fk1_id)
Order by table1.fk1_id, table1.field_no desc

请告知

感谢

更改您的案例,因为如果您使用CamelCase,您的数据库层似乎会自动引用它。

火鸟2.5数据库中的快速测试显示:

SQL> select t1.usuario, t1.NoExisto from sg_usuario t1;
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-T1.NOEXISTO
-At line 1, column 23

SQL> select t1.usuario, "t1.NoExisto" from sg_usuario t1;
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-t1.NoExisto
-At line 1, column 34

正如您所看到的,只有当数据库引擎使用引号获取SQL查询时,它才会生成一个带有驼色大小写的错误。

我建议您尝试myfield_id或在字段名称中使用正确的大小写。

select 
table1.pkfield1,
table1.field_no,
table1.fk1_id,
table1.fk2_id,
table1.myfield_id, 
table1.bfield,
table2.desc1,
table2.desc2,
table2.desc3
from table2
right outer table1 on (table2.pk1_id = table1.fk1_id)
Order by table1.fk1_id, table1.field_no desc

最新更新