标签: cfquery

我可以在ColdFusion中按索引获取查询吗?

我想在ColdFusion Query对象中获取特定行而不循环它.

我想做这样的事情:

<cfquery name="QueryName" datasource="ds">
SELECT *
FROM    tablename
</cfquery>

<cfset x = QueryName[5]>
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误,说该查询不能被"5"索引.我知道这个查询中有超过5条记录.

coldfusion cfquery cfml

35
推荐指数
5
解决办法
6万
查看次数

如何将Query列转换为ColdFusion中的列表

我正在尝试将ColdFusion查询列转换为列表,这样做的最佳方法是什么?

我认为有一个内置函数,允许人们轻松地将查询列转换为列表,如果有的话?

coldfusion cfquery

21
推荐指数
1
解决办法
4万
查看次数

为什么这个查询不会使用cfscript在ColdFusion 9.01中缓存?

我正在ColdFusion 9.01脚本中编写一个查询,并且无法理解为什么它没有缓存结果.使用CFML标记语法执行时,相同的查询将缓存.

SQL,数据源,用户名,密码不会改变.我在实例化之后转储了cfscript查询对象,并验证了在init期间正确接收了cachedWithin参数.我很难过.

不会缓存的CFScript版本

var Q = new Query(
     SQL="SELECT * FROM TABLE"
    ,cachedwithin=createTimeSpan(0,0,60,0)
).execute().getResult();
Run Code Online (Sandbox Code Playgroud)

将缓存的CFML标记版本

<cfquery name="local.q">SELECT * FROM TABLE</cfquery>
Run Code Online (Sandbox Code Playgroud)

感谢您的时间和帮助.

亚伦

coldfusion cfquery

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

当有tsql注释时,cfquery崩溃

这不会在ColdFusion 11中崩溃,但会在ColdFusion 2016中崩溃

SELECT  *
FROM    dbo.Roles WITH (NOLOCK)
WHERE   Code IS NOT NULL
AND     Active = 1
AND     RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK)) -- It's ok to look at termed employees
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这两种方法都可以

SELECT  *
FROM    dbo.Roles WITH (NOLOCK)
WHERE   Code IS NOT NULL
AND     Active = 1
AND     RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK)) 
Run Code Online (Sandbox Code Playgroud)

是否有恢复原始行为的设置?

UPDATE

我以为我有一个最小的问题例子,但我没有.这是完整的查询

    SELECT '<ul>' + STUFF (
        (
        SELECT  MIN(Role) AS "li/code", Code AS "li/span/b", 'Unsorted' AS "li/span/var"
        FROM …
Run Code Online (Sandbox Code Playgroud)

t-sql coldfusion cfquery coldfusion-2016

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

你如何在ORDER BY子句中使用cfqueryparam?

我正在努力成为一名优秀的CF Web开发人员,并使用<cfqueryparam>所有FORM或URL元素来实现我的SQL查询.

在这种情况下,我试图允许用户动态控制ORDER BY子句.

<cfquery datasource="MyDSN" name="qIncidents">
  SELECT IncidentID, AnimalID, IntakeDate, DxDate, OutcomeDate
  FROM Incidents
  WHERE ShelterID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Arguments.ShelterID#">
  ORDER BY <cfqueryparam cfsqltype="cf_sql_varchar" value="#SortBy#">
</cfquery>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

由ORDER BY编号1标识的SELECT项包含一个变量,作为标识列位置的表达式的一部分.只有在引用列名的表达式进行排序时,才允许使用变量.

有关如何安全地做到这一点的任何建议?

sql coldfusion cfquery cfqueryparam

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

如何阻止Coldfusion将查询列名转换为大写?

当我使用ColdFusion 8中的cfquery标签从MySQL表中选择数据时,即使我将它们存储在数据库表中的camelCase中,列名也都会转换为大写.有没有办法让ColdFusion尊重列名的情况?

我问的原因是因为我将查询结果作为JSON对象返回,我不想在JavaScript端使用大写属性名称,因为我保留了常量的命名约定.

coldfusion cfquery

7
推荐指数
2
解决办法
1929
查看次数

在查询查询中使用CFQUERYPARAM是否有任何逻辑上的原因?

我主要CFQUERYPARAM用来防止SQL注入.由于查询查询(QoQ)不接触数据库,是否有任何逻辑上的理由在其中使用CFQUERYPARAM?我知道这不匹配的值cfsqltype,并maxlength会抛出异常,但是,这些值应该已经在此之前进行验证,并显示(从UX观点)友好的信息.

t-sql coldfusion cfquery cfqueryparam

7
推荐指数
2
解决办法
776
查看次数

我们可以在cftransaction中编写数字查询/语句是否有任何限制?

今天在修复一些现有代码中的错误时,我发现了一个奇怪的错误.

分支目标偏移量太大

搜索后我发现它与Java字节码转换有关.以下是我发现的链接:

在我的情况下,cftransaction包含大约870个语句,它工作正常.但我需要在此事务中再添加2个查询.现在,当我在cftransaction中添加一行代码时,我收到此错误.目前我无法将任何现有的cfquery移出cftransaction.

以下是代码的整体结构:

<cftransaction action="begin">

   <cfif URL.action eq 'add'>
         Around 200 lines of queries/statements
   <cfelseif URL.action eq 'edit'>
        Around 200 lines of queries/statements
   </cfif>

    <cfif URL.action eq 'add' or URL.action 'edit'>
          Around 450 lines of queries/statements
    </cfif>

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

有没有解决此问题的解决方法?

coldfusion cfquery coldfusion-9

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

将cfqueryparam与ColdFusion HQL查询一起使用

我正在使用HQL查询来获取一堆状态对象,如下所示:

<cfquery name="LOCAL.qStates" dbtype="hql">
    from States where countryID = #ARGUMENTS.countryID#
    order by name asc
</cfquery>
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我很好,我想使用cfqueryparam,理想情况如下:

<cfquery name="LOCAL.qStates" dbtype="hql">
    from States 
    where countryID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ARGUMENTS.countryID#" />
    order by name asc
</cfquery>
Run Code Online (Sandbox Code Playgroud)

但这会引发错误:

[empty string] java.lang.NullPointerException at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:353) at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:323) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:98) at coldfusion.orm.hibernate.HibernatePersistenceManager._executeHQL(HibernatePersistenceManager.java:822) at coldfusion.orm.hibernate.HibernatePersistenceManager.executeHQL(HibernatePersistenceManager.java:751) at ....
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题,并使用cfqueryparamcfqueryHQL查询?

提前致谢!

coldfusion hibernate hql cfquery

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

使用CFINSERT - ColdFusion后获取主键

当我使用CFINSERT表单时,数据被插入到我的数据库中,因为字段名称与列名称匹配.

我的问题:如何使用CFINSERT获取我刚刚添加的行的主键?

我知道我不能使用类似于标准的"Result ='variable'",cfquery那么获得主键的最佳方法是什么?

如果我在我的cfinsert之后直接运行以下查询,它应该返回以前的PK:

<cfquery name="getID" datasource="#mydsn#" result="#result#">
select Max(id) as NewID from myTablename;
</cfquery>
Run Code Online (Sandbox Code Playgroud)

这是完成我想要做的最好的方法吗?

sql-server coldfusion cfquery primary-key

6
推荐指数
2
解决办法
2446
查看次数