2012-11-23 99 views
2

我用IBDac德爾福連接到Firebir分貝,突然當我試圖運行我得到這個錯誤火鳥錯誤錯誤代碼= -206的列未知

動態SQL ErrorSQL錯誤代碼= -206列軟件未知 table1.MyField_ID在第6行,列18

錯誤顯示出來,當我嘗試打開該數據集

mydataset.open; 

山坳umn當然存在。它是另一個表的外鍵。我真的不知道爲什麼我得到這個錯誤!這裏是我的組件所使用的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 

請告知

感謝

+3

我無法在FROM或JOIN子句中看到table1,請確保此SQL應該工作? – bummi

+2

你確定該列沒有被定義爲「MyField_ID」嗎?在這種情況下,它是區分大小寫的,並且不會在沒有引用的情況下找到。 –

+0

我更新了查詢並添加了table1。再次檢查。我可以在管理員中運行SQL,並且可以在設計時打開表格,但在運行時出現此錯誤 – Wel

回答

4

改變你的情況,因爲它看起來像如果你使用駝峯數據庫層是自動引用它。

在這裏火鳥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 
+0

問題解決了很多謝謝 – Wel

+2

+1,很好! –