Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi Firebird错误代码=-206列未知_Delphi_Firebird_Devart - Fatal编程技术网

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

Delphi Firebird错误代码=-206列未知,delphi,firebird,devart,Delphi,Firebird,Devart,我使用IBDac和Delphi连接到Firebir数据库,当我试图运行该软件时,突然出现了这个错误 动态SQL错误SQL错误代码=-206列未知 表1.1第6行第18列的MyField_ID 尝试打开数据集时出现错误 mydataset.open; 这个专栏当然存在。它是另一个表的外键。我真的不知道为什么我会犯这个错误!!以下是我在组件中使用的SQL: CREATE TABLE table1 ( pkfield1 INTEGER NOT NULL, field_no I

我使用IBDac和Delphi连接到Firebir数据库,当我试图运行该软件时,突然出现了这个错误

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

尝试打开数据集时出现错误

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
创建表表1(
pkfield1整数不为空,
字段\无整数不为空,
fk1_id整数不为空,
fk2_id整数,
MyField_ID整数,
b场整数);
挑选
表1.1,
表1.1现场检查编号,
表1.fk1_id,
表1.2\u id,

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

在Firebird 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\u 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

我在FROM或JOIN子句中看不到表1,舒尔此SQL应该可以工作?您确定该列未定义为
“MyField\u ID”
,在这种情况下,它区分大小写,不加引号就找不到。我更新了查询并添加了表1。请再次检查。我可以在管理员中运行SQL,也可以在设计时打开表,但在运行时我得到了这个结果error@MarkRotterveel无引号…感谢发布表1的完整
CREATE TABLE
语句