用钩子程序实现根据一个表的字段更新另一个表的字段

问题描述:
这里写图片描述
我大概理解的是这个意思,字虽然丑。这是我第一次听说钩子程序,然后上网了解了一下基本概念:钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。不清楚的可以自己上网查一下。我这里用到的一个功能:

<!---插入或者更新数据的方法 --->
<cfinvoke component="#application.siteCfg.appPath#.cor.com.formService" 
            method="formSubmit" 
            argumentCollection="#formData#"
            returnvariable="dataServiceResult">

其实我刚开始把他想复杂了,一直在想怎样才能得到table1的最新更新的那条数据,思路一直是传统的那种Sql Server做法,怎样查询数据,更新数据。后来老大交了我钩子程序的使用方法,发现简单多了。
这是传统的做法:

insert into zz_104(cc_604,cc_605,cc_606,cc_598)
select cc_1913,cc_1919,cc_1918,cc_1923 from zz_200
go

钩子程序的完整代码:

<cffunction name="postInsert" access="remote" output="yes" returntype="any"  returnformat="json" >

        <cfargument name="tid" default="" required="false" type="string">
        <cfargument name="rid" default="" required="false" type="string">

        <cfargument name="snapshot" default="" required="false" type="string">
         <cfset args=deserializeJSON(arguments.snapshot)>       
         <cfset result={}>
         <cfset result.FLAG=1>
         <cfset result.Message="">  


        <cftry>

<!--- 
          <cfquery name="q" datasource="#application.dsn#">
            update zz_251 set cc_1977=cc_1977+'#arguments.rid#'
                where autoid=#arguments.rid# and len(cc_1977) <6
          </cfquery>
 --->




                      <cfset formdata={}>

                      <cfset formdata["formid"]=104>
                      <cfset formdata["autoid"]=0>
                      <cfset formdata["skipzzLog"]="">

                      <cfset formdata["dataflag"]='发布'>
                      <cfset formdata["aclview"]="#session.departmentid#">
                      <cfset formdata["acl"]="#session.departmentid#">
                      <cfset formdata["inputer"]="#session.username#">

                      <cfset formdata["txS_cc_604"]="#args.txS_cc_1913#">
                      <cfset formdata["txS_cc_606"]="#args.txS_cc_1918#">
                      <cfset formdata["txS_cc_605"]="#args.txS_cc_1919#">
                      <cfset formdata["txS_cc_598"]="#args.txS_cc_1923#">



                        <cfinvoke component="#application.siteCfg.appPath#.cor.com.formService" 
                                  method="formSubmit" 
                                  argumentCollection="#formData#"
                                  returnvariable="dataServiceResult">





                          <cfset result.message="专辑信息已添加。<a href='http://xh.ssceg.com/xinhui/cor/index.cfm##/dataForm/104/#dataServiceResult.autoid#' target='_new'>去填写更多专辑信息</a>">

                <cfcatch type="any">

                <cfdump var="#cfcatch#" output="d:\devlog\cc200.txt">

                </cfcatch>

                </cftry>




        <cfreturn result />


    </cffunction>   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值