标签: cfquery

如何以编程方式清理ColdFusion cfquery参数?

我继承了一个大型的传统ColdFusion应用程序.这里有数百个<cfquery>某些sql #variable#</ cfquery>语句,需要按照以下方式进行参数化:<cfquery>这里有一些sql <cfqueryparam value ="#variable#"/> </ cfquery>

如何以编程方式添加参数化?

我曾考虑过编写一些正则表达式或sed/awk'y类型的解决方案,但似乎有人在某个地方解决了这个问题.为自动推断sql类型而获得的奖励积分.

coldfusion sql-injection cfquery cfqueryparam

3
推荐指数
2
解决办法
2909
查看次数

是否可以动态调用cfquery变量?

我正在进行一个查询,其中有12个条目名为"choice_1"到"choice_12".我希望能够根据它在循环中的位置动态调用单个选项.所以这是查询:

<CFQUERY DATASOURCE="tr3" NAME="qryUserMatchPref"> 
    SELECT *
FROM UsrMatchPrefTR2
WHERE session = #sess# AND site = #siteFirst# AND user_id = #tempUser#
</CFQUERY>
Run Code Online (Sandbox Code Playgroud)

让我们说循环是第三次运行,我想检查choice_3,理论上我想要做这样的事情.

<cfset combined = "choice_" & counterChoice>
<cfset tempMatch = qryUserMatchPref.#combined#>
Run Code Online (Sandbox Code Playgroud)

如果counterChoice等于3,我当然会查询choice_3,而不是"组合"列中的内容[在这种情况下不存在].有没有办法在coldfusion中执行此操作,或者我注定要创建一系列非常繁琐的if语句?d:

mysql coldfusion cfquery

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

如何使用CFQUERY从Table2中获取Table1中每个项目的一个结果?

我正在尝试查询simliar:

 <CFQUERY Name=GetResults Database=Rent> SELECT * FROM Units, Tenants
  WHERE Units.UnitID=Tenants.UnitID</CFQUERY>
 <CFOUTPUT Query=GetRetults>
 #UnitName# #TenantID#<BR>
 </CFOUTPUT>
Run Code Online (Sandbox Code Playgroud)

这就是结果的样子

101 57
101 199
101 204
101 590
102 85
102 97
103 44
Run Code Online (Sandbox Code Playgroud)

我只想为TenantID的每个单元获得一个结果,我希望它是最高的租户ID.换句话说,我希望结果如下:

101 590
102 97
103 44
Run Code Online (Sandbox Code Playgroud)

我不知所措.我已经尝试在Query中创建一个循环,但还没有成功.我知道这一定很简单,但我无法弄清楚.我很感激任何建议

coldfusion cfquery

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

Coldfusion - 数据库记录更新时的刷新页面

美好的一天,

让我来描述我的问题:

场景:

  • 用户1有一个coldfusion网页,包含6个警报,作为使用数据库填充的html元素.用户1不断监视此页面以进行更改.
  • 不同计算机上的用户(不同会话)登录管理控制台并添加第7个元素并将其插入数据库.
  • 数据库包含一个字段,只要添加警报并将其插入数据库,该字段就会从0更改为1.
  • 用户1的网页不必使用第8个警报动态刷新或更新.

问题:

  • 我正在努力运行一个异步循环,它会永久地查询数据库以获取记录,告知它有变化,同时不冻结页面的其余部分.

方案:

  • 我需要运行cfquery来检查数据库中的isUpdated字段.
  • 那个cfquery需要每分钟运行一次.
  • 一旦cfquery返回1,页面就应该刷新,这反过来也会填充新的警报.

coldfusion loops asynchronous refresh cfquery

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

是否可以在ColdFusion中生成动态生成的查询名称?

我想做的是

<cfloop array="#LOCAL.someArray" index="LOCAL.aString">

    <cfset LOCAL.queryName = "uniqueQueryName_" & LOCAL.aString />

    <cfquery name="#LOCAL.queryName#" datasource="db" cachedwithin="#CreateTimeSpan(1,0,0,0)#">
        SELECT count(*) AS c FROM someTable
    </cfquery>

    <cfdump var="#LOCAL.queryName#" />
</cfloop>
Run Code Online (Sandbox Code Playgroud)

这是可能的,还是有更好的方法呢?

编辑

这适用<cfloop query="LOCAL.queryName">但不是我尝试的时候<cfset ArrayAppend(LOCAL.returnArray, LOCAL.queryName.c) />

coldfusion cfquery coldfusion-9

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

为什么SQL案例不起作用

我收到错误;列名称"阶段"无效.我已经尝试过我能想到的每一种排列.

<cfargument name="locationFilter" default="" />
    <cfargument name="educationFilter" default="" />
    <cfargument name="workFilter" default="" />
    <cfargument name="diversityFilter" default="" />
    <cfargument name="phaseFilter" default="" />
    <cfquery name="QMentors" datasource="#request.dsn_live#">
        SELECT  
        (case 
        when datepart(year,getdate())-cast(yearstarted as integer) > 29 then '5'
        when datepart(year,getdate())-cast(yearstarted as integer) > 13 then '4'
        when datepart(year,getdate())-cast(yearstarted as integer) > 5 then '3'
        when datepart(year,getdate())-cast(yearstarted as integer) > 1 then '2'
        else '1'
        end) as phase, *
    FROM mentors 
    WHERE 0=0
    AND mentortype='mentor' 
    AND approved='true' 
    AND active='true' 
    AND mentorcat LIKE '%general%' 
        <cfif arguments.locationFilter …
Run Code Online (Sandbox Code Playgroud)

sql coldfusion cfquery case sql-server-2008

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

获取cfquery中返回的特定行数

我知道你可以得到你的查询中返回了多少项的计数,但是......问题:是否有可能得到一个recordcount具有特定值的行,例如......

<cfset totalReturned = myquery.recordcount>

<cfset totalReturnedComplete = myquery.recordcount (where status = "Complete")>
Run Code Online (Sandbox Code Playgroud)

我知道上面的内容不起作用,但我正在寻找类似上面代码的内容.

sql-server coldfusion cfquery

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

Coldfusion CFQUERY超出时限

我有一个保存的XML文件,它是7.1mb,包含1000多个属性和这些属性的所有信息.我的cfscript解析然后将属性以及功能和图像URL插入到属性表中.

但是,该过程通常在它通过250条记录之后就会爆炸,然后给出了这个错误:

 The request has exceeded the allowable time limit Tag: CFQUERY 
Run Code Online (Sandbox Code Playgroud)

我在我的cfquery标签中放置了9000000的超时值,但没有做任何事情.我不知道还有什么可以解决这个问题.

xml coldfusion cfquery

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

在Coldfusion中使用动态命名变量中的列名

我想创建一个函数,该函数将遍历任意查询并根据任意列名在另一个表中执行插入。

例如,这里的想法是输出

(data, data, data...)
(data, data, data...)
Run Code Online (Sandbox Code Playgroud)

最终,我将执行插入查询。现在,我只想输出行。

编辑:我不能只是INSERT/SELECT因为产品数据和开发数据在不同的服务器上。因此,我必须首先将产品服务器上的表中的数据收集到CF查询对象中,然后遍历它并插入开发服务器上的表中。

码:

<cffunction name="copyProdToDev">

    <cfargument name="devDatasource" >
    <cfargument name="prodDataSource" type="string">
    <cfargument name="devTableName" type="string">
    <cfargument name="prodTableName" type="string">
    <cfargument name="dateColumnName" default="none">

    <cfquery name="ProdData" datasource="#prodDatasource#" timeout="60">
        SELECT *
        FROM #prodTableName#
    </cfquery>

    <cfset columnNames = ProdData.getColumnNames()> 
    <cfset numColumns = ArrayLen(columnNames)>

    <cfloop query="#ProdData#">
        (
        <cfloop index="colNumber" from="1" to="#ArrayLen(columnNames)-1#">
            <cfoutput><dynamic column name for colNumber>,</cfoutput>
        </cfloop>
        <cfoutput><dynamic column name for numColumns></cfoutput>
        )<br />
    </cfloop>

</cffunction>
Run Code Online (Sandbox Code Playgroud)

coldfusion cfquery dynamic-variables cfloop

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

如何防止 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
查看次数