Передача области формы удаленному cfc - PullRequest
1 голос
/ 30 марта 2010

Каков синтаксис для передачи области формы в cfc с access = "remote"? У меня есть:

<cfcomponent>
<cfset Variables.Datasource = "xxx">

<cffunction name="Save" access="remote">
    <cfset var local = {}>

    <!--- todo: try/catch --->  
    <cfif arguments.PersonID>
        <cfquery datasource="#Variables.Datasource#">
        UPDATE Person
        SET FirstName = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.FirstName#">
        ,LastName = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.LastName#">
        WHERE PersonID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.PersonID#">
        </cfquery>
        <cfset local.result = arguments.PersonID>
    <cfelse>
        <cfquery name="local.qry" datasource="#Variables.Datasource#">
        INSERT INTO Person(FirstName,LastName) VALUES(
        <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.FirstName#">
        ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.LastName#">
        );
        SELECT PersonID FROM Person 
        WHERE PersonID=Scope_Identity()
        </cfquery>
        <cfset local.result = local.qry.PersonID>
    </cfif>
    <cfreturn local.result>
</cffunction>
</cfcomponent>

Мне нужно передать form.PersonID, form.firstname, form.lastname.

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Одна не связанная вещь. В cf9 у вас уже есть ожидающая структура local . Подробнее об этом здесь http://forta.com/blog/index.cfm/2009/6/21/The-New-ColdFusion-LOCAL-Scope

1 голос
/ 30 марта 2010

Ваша удаленная функция может принимать либо аргумент struct, либо 3 строковых аргумента (PersonID, имя и фамилия).

См. <CFARGUMENT> в документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...