삽입 쿼리를 실행하려고하는데 아래 오류가 나타납니다. 삽입 문에 값을 전달하려면 어떻게해야합니까? 값은 배열에서 나오고 [cNotes]
열 유형은 varchar NULL
입니다.INSERT 쿼리 오류 : 데이터 유형 varchar에서 varbinary 로의 암시 적 변환이 허용되지 않습니다. CONVERT 함수를 사용하여이 쿼리를 실행합니다.
미리 감사드립니다.
오류 :
Error Executing Database Query.
[Macromedia][SQLServer JDBC Driver][SQLServer]Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.
The error occurred in C:\Inetpub\wwwroot\Components\Assessment.cfc: line 510
Called from C:\Inetpub\wwwroot\Components\Assessment.cfc: line 440
508 : ,NULL
509 : </cfif>
510 : ,'#arguments.notes#')
511 : </cfquery>
512 : </cffunction>
--------------------------------------------------------------------------------
SQL INSERT INTO AssessmentToolDetail(iAssessmentToolMaster_ID ,iServiceList_ID ,cRowStartUser_ID ,Service_text ,cNotes) Values(251069 ,3592 ,NULL ,'y ' ,'')
DATASOURCE TIPS4
VENDORERRORCODE 257
SQLSTATE HY000 '
CFC 기능 :
<cffunction name="AddService" access="public" returntype="void" output="false">
<cfargument name="ServiceList" type="Components.ServiceList" required="true">
<cfargument name="notes" type="string" required="false" default="">
<cfargument name="serviceText" type="string" required="false" default="">
<cfquery name="AddServiceListQuery" datasource="#variables.dsn#">
INSERT INTO AssessmentToolDetail (
iAssessmentToolMaster_ID
, iServiceList_ID
, cRowStartUser_ID
, Service_text
, cNotes)
VALUES (
#variables.id#
,#ServiceList.GetId()#
<cfif variables.rowStartUserId neq "">
, '#variables.rowStartUserId#'
<cfelse>
, NULL
</cfif>
<cfif ListFirst(Arguments.serviceText,'_') EQ ServiceList.GetId() >
, '#Left(ListLast(Arguments.serviceText,'_'),1)# '
<cfelse>
, NULL
</cfif>
, '#arguments.notes#'
)
</cfquery>
</cffunction>
제쳐두고,'cfqueryparam'을 사용하여 SQL injection에 대한 쿼리를 보호해야합니다 (성능상의 이유로). – Leigh