标签: cfc

如何防止 Coldfusion 中的 CFC 中的查询返回区分大小写的结果

我遇到一个问题,我正在使用 Ben Nadel 的 QueryAppend.cfc 连接来自两个不同数据源的两个记录集。我得到的数据是正确的,但数据的顺序不是预期的。组合结果集的排序如下,所有结果都以小写字母开头附加到记录集的底部:

cfdump 的屏幕截图

我期待(并且需要)以下类型的排序:

苹果

艺术

瓶子

男生

硬币

代码如下:

<!---Calling Template--->

<cfquery name="getDataSet1" datasource="datasource1">
SELECT param1
FROM table1
</cfquery> 

<cfquery name="getDataset2" datasource="datasource2">
 SELECT param1
FROM table2
</cfquery> 

<cfscript>
// Create object
 TheUnionObject = createObject("component", "cfc/QueryAppend");
 // Call the function
myUnionResult = TheUnionObject.QueryAppend(getDataSet1, getDataSet2);
</cfscript> 

<!---Dump results--->
<cfdump var="#myUnionResult#">






 <!---QueryAppend.cfc--->
 <cfcomponent>
 <cffunction name="QueryAppend" access="public" returntype="query" 
 output="false"
 hint="This takes two queries and appends the second one to the first one. 
  Returns the resultant …
Run Code Online (Sandbox Code Playgroud)

cfc cfquery qoq coldfusion-11

2
推荐指数
1
解决办法
1042
查看次数

你能在cfc中重新分配默认的<cfargument吗?

我正在调用cfc,cfc有一组默认参数:

<cfargument name="EMAIL_TEMPLATE_CODE" type="string" required="yes" hint="EMAIL_TEMPLATE_CODE is required.">
<cfargument name="EMAIL_TEMPLATE_SUBJECT" default="" type="string" required="no" hint="EMAIL_TEMPLATE_SUBJECT is NOT required.">
<cfargument name="EMAIL_TEMPLATE_BODY" default="" type="string" required="no" hint="EMAIL_TEMPLATE_BODY is NOT required.">
Run Code Online (Sandbox Code Playgroud)

我想做的是让这些参数不被要求(正如你可以通过required ="no"看到的那样)但是如果需要的话我想重新分配参数变量.

所以类似于:

<cfargument name="EMAIL_TEMPLATE_CODE" type="string" required="yes" hint="EMAIL_TEMPLATE_CODE is required.">
<cfargument name="EMAIL_TEMPLATE_SUBJECT" default="" type="string" required="no" hint="EMAIL_TEMPLATE_SUBJECT is NOT required.">
<cfargument name="EMAIL_TEMPLATE_BODY" default="" type="string" required="no" hint="EMAIL_TEMPLATE_BODY is NOT required.">

<cfinvoke component="#Request.CFCPath#.email_template" method="getEmailTemplate" returnvariable="getEmailTemplate">
    <cfinvokeargument name="EMAIL_TEMPLATE_CODE" value="#ARGUMENTS.EMAIL_TEMPLATE_CODE#">
</cfinvoke>

<cfif getEmailTemplate.RecordCount>
    <cfparam name="ARGUMENTS.EMAIL_TEMPLATE_SUBJECT" default="#getEmailTemplate.EMAIL_TEMPLATE_SUBJECT#" type="string">
    <cfparam name="ARGUMENTS.EMAIL_TEMPLATE_BODY" default="#getEmailTemplate.EMAIL_TEMPLATE_BODY#" type="string">
</cfif>
Run Code Online (Sandbox Code Playgroud)

但是我无法覆盖默认的ARGUMENTS变量.你能发现我做错了吗?

编辑:

我这样做是因为如果没有参数传递给cfc,我想创建一个.如果参数没有长度,我想我应该cfset一个局部变量?

<cfif Len(ARGUMENTS.EMAIL_TEMPLATE_ADDRESS_FROM)>
    <cfset EMailTemplateAddressFrom …
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc invoke

1
推荐指数
1
解决办法
1226
查看次数

将CFC文件拆分为多个文件

我被要求更新一个旧项目.当我进入cfc文件时,它有超过3000行代码和超过100个cffunctions.我想知道我是否可以将cfc拆分成多个文件,其cffunction逻辑分组而不必更改任何其他页面中的代码.

coldfusion cfc

1
推荐指数
1
解决办法
431
查看次数

使用ColdFusion和jQuery Ajax返回数据

我正在向查询数据库的cfc文件发出请求.我将这些结果存储在结构,数组或其他方式中吗?根据我存储和返回结果的方式,我如何处理jQuery中的各个部分?
我尝试将结果存储在一个数组中,只显示其中一个结果,这样做不起作用:

$.ajax({
    type: "POST",
    url: "/ajax/ajax_test.cfc?method=ajaxTest",
    data:"field1=17",
    success: function(response) {
    var r=response;
    $(".cat_vid_subContainer").empty();
    $(".cat_vid_subContainer").html(r.DATA[2]);
    }
    });
Run Code Online (Sandbox Code Playgroud)

coldfusion jquery cfc

1
推荐指数
1
解决办法
4736
查看次数

在应用程序变量中存储CFC或在页面调用上实例化CFC是否更有效(性能)?

我正在开发一个ColdFusion动态网站.对于这个网站,每个CFC中都有很多CFC和许多功能. 将CFC实例存储在应用程序变量中,然后在每个页面加载时单独实例化每个CFC会更有效吗?

对于每个页面,最多调用2个单独的CFC.我也对如何在请求增加(压力)时影响性能感兴趣.

谢谢!

coldfusion performance cfc instance-variables

1
推荐指数
1
解决办法
134
查看次数

从组件(cfc)调用用户定义的函数不起作用

我在标签内调用函数(JoblistAdd).

请参阅Index.cfm中的以下代码

<cfajaxproxy cfc="TimesheetHours" jsclassname="js_TimesheetHours"> 

<script >
 var obj_TimesheetHours = new js_TimesheetHours();
var strMsglist=
obj_TimesheetHours.JoblistAdd(selectedJobArray,userID,weekending,tsApproved);
</script>
Run Code Online (Sandbox Code Playgroud)

下面是组件代码TimesheetHours.CFC

<cffunction name="JoblistAdd" >
<cfargument name="AddList" required="yes" >
<cfargument name="userID" required="yes"  >
<cfargument name="weekending"  required="yes" >
<cfargument name="Approved"  required="false" >

<cfset JobArray =arguments.AddList>
<cfset userID =arguments.userID>
<cfset weekending =arguments.weekending>
<cfset tsApproved =arguments.Approved>
    <cfdump var="#JobArray #"><cfabort>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

但我无法到达转储,我认为它不会进入功能,请分享您的想法

coldfusion cfc

1
推荐指数
1
解决办法
442
查看次数

为什么我的$ .ajax()数据没有传递给我的.cfc

我正在根据从下拉列表中选择的值更新变量,它只是不起作用.

在这个网站上我有另一个CFC工作正常,但是这个只是完全拒绝发布数据.

jQuery的

$('.accessLevel').change(function() {
    var theValue = $('.accessLevel').val();
    $.ajax({
        type: "post",
        url: "setLevel.cfc",
        data: {
            method: "theLevel",
            alevel: theValue
        },
        dataType: "json",
        success: function(){
            alert('YES');
        },
        error: function(){
            alert('NO');
        }
    });    
 })
Run Code Online (Sandbox Code Playgroud)

HTML

<select name="accessLevel" class="accessLevel">
   <option value="">Select an Access Level</option>
   <option value="1">Level One</option>
   <option value="2">Level Two</option>
   <option value="3">Level Three</option>
</select>
Run Code Online (Sandbox Code Playgroud)

CFC

<cfcomponent>
  <cffunction name="theLevel" access="remote" returntype="any">
    <cfargument name="alevel" type="any" required="yes">
    <cfset SESSION.accessLevel = argument.alevel>
    <cfreturn />
  </cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

变量theValue正在填充,它只是不会传递给CFC,我不知道为什么!我得到的错误是这个..

Element ALEVEL is undefined in ARGUMENT.
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion jquery cfc

1
推荐指数
1
解决办法
710
查看次数

谷歌索引cfc并给出500错误

所以我正在开发一个ColdFusion网站,今天早上我们发现谷歌正在抓取我们的网站并关注cfc并收到500错误.我们使用cfc和ajax调用,因此不应该对它们进行爬网.我们该如何解决这个问题?

coldfusion cfc web-crawler

1
推荐指数
1
解决办法
153
查看次数

为什么在CFC中元素未定义?

我有一个相当简单的CFC,带有一组属性,然后是一些与这些属性相关的基本功能.除了作为阵列的属性外,一切似乎都能正常工作......

property name="tags" type="array";
Run Code Online (Sandbox Code Playgroud)

这是该物业的简单声明.但是,当我尝试在其中一个成员函数中对它执行操作时,我收到错误...

public void function addTag(thisTag) {
    var local.tags = this.getTags();
    if (thisTag.isObjectValid()) {          
        *ArrayAppend(local.tags,arguments.thisTag);*
        this.setTags(local.tags);
    }
}
Run Code Online (Sandbox Code Playgroud)

与星星的线是我得到错误的地方(星星不在代码中)

Element TAGS is undefined in LOCAL.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

附加信息:

  1. accessors ="true"在组件声明中设置
  2. isObjectValid是另一个CFC中的自定义函数 - 它已经过测试和运行

coldfusion cfc cfml coldfusion-11

1
推荐指数
1
解决办法
501
查看次数

Coldfusion cfquery实时cfprogressbar

我的函数运行查询,它根据请求的数据花费一些时间.在查询运行时,我想显示实际查询加载cfprogressbar和更改状态/标题,而cfprogressbar正在进行.即时通讯仍然在谷歌搜索到现在没有运气所有示例显示静态时间.

我在想,如果我能得到真正的cfquery加载时间,我会将该值传递给cfprogressbar.请指教

  • 冷血11
  • Windows 2012
  • cfprogressbar
  • CFQUERY

coldfusion cfc cfquery coldfusion-11

1
推荐指数
1
解决办法
298
查看次数