4

挿入クエリを実行しようとしていますが、以下のエラーが表示されます。値を挿入ステートメントに渡すにはどうすればよいですか? 値は配列から取得され、[cNotes]列の型はvarchar NULLです。

前もって感謝します。

エラー:

        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 '

フロン関数:

<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>
4

1 に答える 1

4

The error is saying that you're trying to insert a string into a column with a binary storage format, and it can't make the conversion implicitly.

Check that the cNotes column in the AssessmentToolDetail table has a datatype of varchar(n) or nvarchar(n) and not varbinary(n).

于 2012-06-28T13:52:56.523 に答える