使用 coldfusion 将数据附加到数据库列
Appending data to database column using coldfusion
出于某种原因,以下更新不会将我的注释添加到 Admin_Notes 字段。该字段为空,但一旦有数据,我想添加到当前数据而不是替换它。
<cfargument name="adminNotes" required="yes">
<cfargument name="form_ID" required="yes">
<cfargument name="quoteNumber" required="yes">
<cfquery name="completeRFQ" datasource="RC">
UPDATE RFQ_Forms
SET Status = 'Complete',
Completion_Date = CURRENT_TIMESTAMP,
Admin_Notes = Admin_Notes + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>
这一列设置为nvarchar(MAX)
我的查询的其余部分正确完成,我验证传递的变量中有一个字符串。
我将查询包装在 cftry 中,但没有得到任何回复。
测试后我的问题有了更新
该栏实际上是空的,因为这是我第一次运行宁它。当我手动向列中添加文本然后 运行 查询时,文本的第二部分被添加到列中。
如果列为空且其中已有文本,我如何向该列添加数据?
The column is actually empty since this is the first time I am running it. When I add text to the column by hand and then run the query the second part of text is added to the column.
失败的原因是您试图将某些内容连接为 null。要解决此问题,请更新 table 并将所有空值设置为空字符串。然后更改该列,使其不为 null,默认值为空字符串。
与您的问题无关,您应该为您的 cfargument 和 cfqueryparam 标签指定数据类型。
您应该能够在您的列周围包装一个 isNull() 检查。这样,如果 Admin_Notes
为空,它会将其转换为空字符串并附加您的数据
<cfquery name="completeRFQ" datasource="RC">
UPDATE RFQ_Forms
SET Status = 'Complete',
Completion_Date = CURRENT_TIMESTAMP,
Admin_Notes = isNull(Admin_Notes,'') + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>
出于某种原因,以下更新不会将我的注释添加到 Admin_Notes 字段。该字段为空,但一旦有数据,我想添加到当前数据而不是替换它。
<cfargument name="adminNotes" required="yes">
<cfargument name="form_ID" required="yes">
<cfargument name="quoteNumber" required="yes">
<cfquery name="completeRFQ" datasource="RC">
UPDATE RFQ_Forms
SET Status = 'Complete',
Completion_Date = CURRENT_TIMESTAMP,
Admin_Notes = Admin_Notes + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>
这一列设置为nvarchar(MAX)
我的查询的其余部分正确完成,我验证传递的变量中有一个字符串。
我将查询包装在 cftry 中,但没有得到任何回复。
测试后我的问题有了更新
该栏实际上是空的,因为这是我第一次运行宁它。当我手动向列中添加文本然后 运行 查询时,文本的第二部分被添加到列中。
如果列为空且其中已有文本,我如何向该列添加数据?
The column is actually empty since this is the first time I am running it. When I add text to the column by hand and then run the query the second part of text is added to the column.
失败的原因是您试图将某些内容连接为 null。要解决此问题,请更新 table 并将所有空值设置为空字符串。然后更改该列,使其不为 null,默认值为空字符串。
与您的问题无关,您应该为您的 cfargument 和 cfqueryparam 标签指定数据类型。
您应该能够在您的列周围包装一个 isNull() 检查。这样,如果 Admin_Notes
为空,它会将其转换为空字符串并附加您的数据
<cfquery name="completeRFQ" datasource="RC">
UPDATE RFQ_Forms
SET Status = 'Complete',
Completion_Date = CURRENT_TIMESTAMP,
Admin_Notes = isNull(Admin_Notes,'') + <cfqueryparam value="#ARGUMENTS.adminNotes#">,
Quote_Num = <cfqueryparam value="#ARGUMENTS.quoteNumber#">
WHERE ID = <cfqueryparam value="#ARGUMENTS.form_ID#">
</cfquery>