2011-04-12 72 views
0

我在Windows 7 64位上使用Coldfusion 9,0,0,251028和Microsoft Access 97數據庫。INSERT INTO語句包含以下未知字段名稱

當我運行此查詢:

<cfquery name="put_in_info" datasource="#db#"> 

     insert into news 

        (is_current, display, mes_dat,mes_tim,mes_sub,mes_text,scrollshow,exp_dat) 

     values 

    (1,1, #createodbcdate(now())#, #createodbctime(now())#, '#subject#', '#message#',1, #session.expdate#) 

</cfquery> 

我得到這個錯誤:

Error Executing Database Query. 

[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] The INSERT INTO statement contains the following unknown field name: 'exp_dat'. Make sure you have typed the name correctly, and try the operation again. The error occurred in H:\Inetpub\pvalert.com\listserver\admin\templates\post_breaking.cfm: line 26 
Called from H:\Inetpub\pvalert.com\listserver\admin\new_process.cfm: line 54 
Called from H:\Inetpub\pvalert.com\listserver\admin\templates\post_breaking.cfm: line 26 
Called from H:\Inetpub\pvalert.com\listserver\admin\new_process.cfm: line 54 

24 :  (is_current, display, mes_dat,mes_tim,mes_sub,mes_text,scrollshow,exp_dat) 

25 : values 

26 : (1,1, #createodbcdate(now())#, #createodbctime(now())#, '#subject#', '#message#',1, #session.expdate#) 

27 : </cfquery> 

28 : 

VENDORERRORCODE 


    -1507 

SQLSTATE 


    HYS22 

SQL 


    insert into news (is_current, display, mes_dat,mes_tim,mes_sub,mes_text,scrollshow,exp_dat) values (1,1, {d '2011-04-11'}, {t '17:49:09'}, 'Test message - please ignore', 'This is a test message, please ignore. ',1, {ts '2011-05-15 00:00:00'}) 

DATASOURCE 


    rpv_list 

Exp_dat是,我需要更新表的截止日期欄。

我嘗試刪除「會話」。在expdate變量上,並且什麼也沒做。同樣,爲了消除第24行「exp_dat」周圍的任何空格。

回答

4

給出的錯誤消息不會抱怨插入的值。它聲稱「exp_dat」字段不存在於你的表格/視圖「news」中。

要做的第一件事是仔細檢查是否確實有一個名爲「exp_dat」的字段。如果您無法直接訪問數據庫,只需從ColdFusion中啓動查詢並轉儲查詢結果即可。

<cfquery name="getSomeRowsFromNewsTable" datasource="#db#" maxrows="10"> 
select * from news 
</cfquery> 
<cfdump var="#getSomeRowsFromNewsTable#" abort="true"> 

也許有人別名領域,或在視圖中不包括現有的領域,也就是所謂的「exp_dattim」,或...

+0

我跑的SELECT語句獲取所有行,然後: 並獲得: DISPLAY,** EXP_DAT **,ID,IS_CURRENT,MES_DAT,MES_SUB,MES_TEXT,MES_TIM,SCROLLSHOW 因此,似乎該列確實存在 – 2011-04-12 17:40:35

0

嘗試包你在插入語句插入的每個值單引號.ie '#variable#', '#another_var#' - 依此類推。我想我有同樣的問題,但是這樣做會解決它。

0

我遇到過這個問題多次,與MS Access。我知道列名拼寫正確,列存在。 EG,我可以在列上做一個沒有問題的'SELECT',但是當我嘗試一個簡單的SQL INSERT時,我得到這個錯誤:「...未知的字段名稱」 我沒有輸入任何東西,只是使用複製和粘貼,所以不會有打字錯誤的機會。 Access在字面上確實會識別SELECT語句中的列名,並且在嘗試INSERT時不會識別相同的列名。

,似乎是在MS Access中的錯誤2010年

+0

我也可以在2007年確認此錯誤。我如何解決錯誤是我注意到Access將有助於將查詢設計器中的列重命名爲它想要的內容。如果我更改了表中的列名稱以匹配它,那麼插入查詢將運行得很好。 – dmaruca 2015-10-09 18:46:51

相關問題