Coldfusion 读取文件内容后设置变量值

Coldfusion 读取文件内容后设置变量值,coldfusion,Coldfusion,我有一个非常大的查询,从3个不同的页面被调用。 我没有在所有3个cfm文件中编写相同的查询,而是尝试找到另一种方法将查询(连同#变量#)保存在query.cfm文件中 Query.cfm示例: SELECT * FROM A WHERE TRADE_DATE BETWEEN to_date('#f_startDate#','dd/mm/yyyy') AND to_date('#f_endDate#','dd/mm/yyyy') 变量:#f#u开始日期#和#f#u结束日期# 然

我有一个非常大的查询,从3个不同的页面被调用。 我没有在所有3个cfm文件中编写相同的查询,而是尝试找到另一种方法将查询(连同#变量#)保存在query.cfm文件中

Query.cfm示例:

SELECT *
    FROM A
    WHERE TRADE_DATE  BETWEEN to_date('#f_startDate#','dd/mm/yyyy') AND to_date('#f_endDate#','dd/mm/yyyy')
变量:#f#u开始日期#和#f#u结束日期#

然后我读取文件内容,将其存储在一个变量中,并将#variable(s)#替换为从每个页面运行函数的值

调用页面(到目前为止不起作用的代码):


#保留单引号(查询)#
如何将变量值设置到字符串中

有关每页的详细信息:

  • 返回要加载图表的查询的JSON

  • 用于生成xls中的查询数据

  • 进一步用于生成查询数据子集(QoQ)以创建表

  • 数据库:Oracle

    您的选项包括:

  • 将查询放入.cfm模板中,并使用cfinclude访问它
  • 将查询放入.cfm文件中的用户定义函数中。然后包含该文件并调用该函数
  • 将查询放入.cfc文件中的用户定义函数中。然后可以使用cfinvoke运行函数,或者创建一个对象,然后调用函数
  • 可能还有其他选择。我建议看看我建议的三个,并确定哪一个最符合您的需求

    无论使用什么方法,ColdFusion都有一个parsedatetime函数,可以将字符串转换为日期对象。使用这些功能可能比oracle的“最新”功能更快。你得测试看看。在任何情况下,出于各种原因使用cfqueryparameter

    另外,在oracle中使用between时要小心。其日期字段包括时间组件。如果您的任何记录都有一个,那么使用

    where trade_date >= YourStartDate
    and trade_date < TheDayAfterYourEndDate
    
    where trade\u date>=您的起始日期
    交易日期<截止日期后的第二天
    
    谢谢你,丹。就连我也一直在努力使用
    的第一个选项,而且效果很好。此外,我必须在query.cfm文件中用
    标记封装查询。
    where trade_date >= YourStartDate
    and trade_date < TheDayAfterYourEndDate