查询到cfscript在Coldfusion中正确吗?

时间:2020-05-22 16:43:20

标签: sql coldfusion cfml

澄清::这里的问题是,“如何停止使用<cfquery>来检索数据并将其替换为对API的调用?”

我有一个sql查询,需要帮助将其转换为cfscript。但是,如您所见,我已尝试对其进行转换。但是,如果我在从sql查询转换为cfscript的正确路径上,则需要进行一些验证。如果没有,有人可以通过将SQL查询转换为cfscript来帮助我吗?谢谢您的帮助。这是我的代码。

CFSCRIPT:

<cfset jsonDatas = fileRead("c:\Users\Desktop\MyApi.json" )>      
<cfset jsonData = deserializeJSON(jsonDatas) />       
<cfif arrayLen(jsonData)>  
  <cfloop array="#jsonData#" index="prop">       
    <cfoutput>  
      <cfscript>  
        // writedump(jsonData);for (item in jsonData[1])   {  
          if (#prop.payGrade# == 0) {
                 #prop.divisionNbr#;        
         #prop.probationBeginDate#;        
         #prop.legacyStatus#;        
         #prop.payStep#;        
         #prop.creationDate#;           
          } 

3 个答案:

答案 0 :(得分:0)

您要问的是两件事。

  • SQL定义在数据库上运行的查询。
  • CFSCRIPT只是ColdFusion代码(与标签相对)的脚本样式语法。

您的示例代码是

  • 这是一些SQL
  • 在这里,我正在阅读JSON,并使用脚本样式代码(而不是标签)将其转换为ColdFusion结构。

您是要从当前调用数据库(将数据作为ColdFusion查询对象返回)到调用API(将数据作为JSON数据包返回)吗?然后,您需要将JSON数据转换为当前使用的相同或相似的CF结构吗?

更新:如果您想用API调用替换现有查询,

  • 该API是否已经存在?
  • 它是否返回与当前查询相同的数据?
  • 您的团队是否正在使用API​​来分离现有代码?
  • 您是否需要知道如何将<cfquery>调用转换为API调用?

答案 1 :(得分:0)

我要在这里破产。您是否在数据库中有数据,并且只想返回该数据的JSON表示形式?如

<cfquery name="result">
    SELECT ...
    FROM whereever
</cfquery>

<cfoutput>#SerializeJSON(result, 'struct')#</cfoutput>

然后其他尝试使用此数据?我一直在寻找您的问题,我不知道我们是在世界的生成数据方面,还是在世界的消费数据方面。

答案 2 :(得分:0)

这确实是一条评论,但我需要大量空间来编写它。

您是否要从远程源获取数据并将其显示在网页上?您是否想做这样的事情?

enter image description here

我认为我们需要澄清哪些是客户端技术,哪些是服务器端技术。

更新基于评论**

考虑VueJS解决方案

<!-- Showing stuff on screen -->
<div id="app">
  {{ info }}
</div>

我可以在屏幕上显示内容。这与#info#

类似但不相同
<!-- Getting data -->
<cfscript>
new Vue({
  el: '#app',
  data () {
    return {
      info: null
    }
  },
  mounted () {
    axios
      .get('https://api.coindesk.com/v1/bpi/currentprice.json')
      .then(response => (this.info = response))
  }
})
<cfscript>

这是从远程源获取数据并将其放入javascript变量中。

说明

那我为什么要使用Javascript而不是ColdFusion? Javascript在浏览器上运行; ColdFusion在服务器上运行。如果要在浏览器上使用API​​,则必须使用基于浏览器的技术。

我的示例在VueJS中,但是Angular和React也可以选择。有点过时了,但是jQuery也可以做这种事情。

代码来源:https://vuejs.org/v2/cookbook/using-axios-to-consume-apis.html

相关问题