【发布时间】:2014-11-26 20:19:33
【问题描述】:
我在 Access 表中添加了一个名为 AssignedDate 的新字段,数据类型为日期/时间。然后我将它添加到现有的更新查询中,我收到了这个错误:
[Macromedia][SequeLink JDBC 驱动程序][ODBC 套接字][Microsoft][ODBC Microsoft Access Driver]
参数太少。预计 1。UpdatedDate = #Now()#, AssignedDate = #Now()# 503 : WHERE RequestID = '#arguments.RequestID#'
504:</cfquery>
505:</cffunction>
SQL:UPDATE Requests_Main SET CADOperatorID = '', EngineerID = 'EAGLE', RequestStatusID = '1', AssingedDate = {ts '2014-11-26 12:50:02'}, UpdatedDate = {ts '2014-11-26 12:50:02'}, AssignedDate = {ts '2014-11-26 12:50:02'} WHERE RequestID = '13999'
数据源 XXX
VENDORERRORCODE -3010
SQLSTATE 07002
所有内容都拼写正确且数据类型匹配,但不会更新。
如果有人可以帮助解释原因,我将非常感激。
这是除了添加新字段之外没有任何更改的查询。我已经尝试在变量周围添加单引号,但它们都丢失了,但这也不起作用。
`<cffunction name="UpdateRequest_Assignments" access="public" output="false">
<cfargument name="RequestID" type="numeric" required="true">
<cfargument name="CADOperatorID" type="string" required="true">
<cfargument name="EngineerID" type="string" required="true">
<cfargument name="RequestStatusID" type="numeric" required="true">
<cfquery datasource="#request.DSN#">
UPDATE Requests_Main
SET CADOperatorID = '#arguments.CADOperatorID#',
EngineerID = '#arguments.EngineerID#',
RequestStatusID = #arguments.RequestStatusID#,
AssingedDate = #Now()#,
UpdatedDate = #Now()#,
AssignedDate = #Now()#
WHERE RequestID = #arguments.RequestID#
</cfquery>
【问题讨论】:
-
拼写错误的字段名称将被解释为参数。 AssingedDate 和 AssignedDate 之间是否存在问题?
-
@Kstomp - 下次,错误消息属于in the question,因此它们更加明显。仅供参考,错误消息已移至问题中。请删除多余的评论。
-
@HansUp - 好地方。这大概就是问题所在。顺便说一句,Kstomp 在所有可变查询参数上始终使用
cfqueryparam。 -
空字符串有什么可疑之处?需要详细说明吗?
-
如果您的意思是“ID”表示数字数据类型,而不是字符串/文本 - 也许。但是,如果是这种情况,它应该会产生不同的错误,即数据类型不匹配。
标签: ms-access coldfusion