我正在使用CF8和SQL2000.我在SQL表的Text字段中存储了一堆HTML.当我针对该数据执行简单的CFQUERY以及CFDUMP时,它被截断为64000个字符.
通过使用SELECT Substring选择数据的尾端,我已经确认我的数据在SQL表中是完整的,并使用SELECT Datalength()确认了长度.这真的是65102个字符.
这是CFQUERY的限制,如果是这样,有什么好办法?
如何在不使用ColdFusion中的Results.columnname的情况下打印所有结果
对于前: -
我有 <cfquery name="getProductId">
        select productId
         from product
        </cfquery>
在Product Table中,我有2列product_name和Product_id.
如何在不使用getProductId.product_name getProductId.Product_id的情况下打印它们
谢谢,
如果返回的coldfusion查询结果集中的一列具有NULL,那么我们如何检查此列的值是否为NULL?
我们应该说<cfif queryname.columnname[i] EQ ''>  OR <cfif queryname.columnname[i] eq 'NULL'>吗?
我有一个在<cfquery>里面生成一些SQL.它失败了,但我不明白为什么.我尝试将其包装在一个<cftry> <cfcatch>块中,然后转储结果.但是,结果未定义.有没有其他方法可以看到SQL的样子?
假设有一个SQL表 Fruit
id | name
--- ------
 1 | 'apples'
 2 | 'pears'
 3 | 'kiwi'
 4 | 'bananas, peaches and plumbs'
鉴于以下查询
<cfquery name="qAllFruit" datasource="#DSN#">
    SELECT name FROM Fruit
</cfquery>
<cfquery name="qLeftoverFruit" datasource="#DSN#">
    SELECT name FROM Fruit
     WHERE name NOT IN (<cfqueryparam CF_SQL_TYPE="CF_SQL_VARCHAR" 
                                      value="#ValueList(qAllFruit.name)#" 
                                      list="yes" />)
</cfquery>
然后qLeftoverFruit将错误地返回1行:bananas, peaches and plumbs因为扩展cfqueryparam列表被错误地解释:
WHERE name NOT IN ('apples','pears','kiwi','bananas','peaches and plumbs')
有没有办法在仍然使用cfqueryparam标签时纠正这个问题ValueList?
更新以下是您可以用来重现此问题的要点:http://gist.github.com/a642878c96b82b21b52c
我有一个MySQL数据库,列数据为LONGTEXT.它有85.504个字符.当我使用coldfusion查询执行select时,它只返回前64,001个字符.ColdFusion仅限于64,001个字符吗?
selectTest = new query();
selectTest.setDatasource("myDB");
selectTest.setName("selectTest");
selectTest.addParam(name="MyID",            value="#arguments.data.MyID#",          cfsqltype="cf_sql_integer");
result = selectTest.execute(sql="SELECT MyLongText FROM MyTable WHERE ID = :MyID");
rs = result.getResult();
return rs.MyLongText[1];
这是我的函数,只返回前64,001个字符.
谢谢
这是一个我以前从未注意过的奇怪的事情.
我在ColdFusion 8中针对iSeries/DB2数据库运行SELECT查询.
这是最简单形式的查询:
<cfquery name="qMyData" datasource="#APPLICATION.DataSource#">
    SELECT  'XXX  111'
    FROM    MYLIB.MYTABLE
</cfquery>
选择的值是XXX  111(两个字符串之间的两个空格).查询返回的值是XXX 111(它删除第二个空格):
<cfdump var="#qMyData#" /> 
返回以下查询结果:
<TABLE class=cfdump_query>
<TBODY>
<TR>
<TH style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleTable(this); colSpan=5>query</TH></TR>
<TR bgColor=#eeaaaa>
<TD style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleRow_qry(this);> </TD>
<TD class=query>00001</TD>
<TR>
<TD style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleRow_qry(this);>1</TD>
<TD vAlign=top>XXX 111 </TD>
为什么ColdFusion会移除第二个空间?有没有解决方法来确保我获得我正在尝试检索的EXACT值?
我正在使用循环查询并在存在要连接的记录时连接表。
当没有记录要加入该行时,有没有办法阻止该行完全返回?
编辑:我错过了其中的 if 语句。我正在循环记录并检查设置选项,如果该设置选项存在于记录中并且查询“someRecord”中没有相应的记录,那么这些是我不想返回的记录。
<cfloop query="myquery">
    <cfif listfindnocase(myquery.setup_option,"required_information")>
        <cfquery name="someRecord" dbtype="query">
            select * from second_table
            where key_id = '#myquery.key_id#'
        </cfquery>
        <cfif someRecord.recordcount eq 0>
        <!--- Need something here to remove this row from returning in the query --->
        </cfif>
    </cfif>
</cfloop>
我有一个输入复选框字段,用户可以在其中选择表单中的多个复选框,并且根据他们选择的内容,它将创建一个 id 字符串,如 10、14、35、47,并将其提交到数据库。如果我直接提交它,我可以提交这个,如下所示:
user_job_type_id="#form.user_job_type_id#",
但是,如果我尝试将它包装在 cfqueryparam 中,我宁愿这样做以使其更安全,无论我做什么,我都会收到错误消息。无论我是否将它设置为列表 true 或 false、varchar、integer,一切都会引发错误,例如 cfqueryparam 不接受列表。
例如,下面将不起作用
user_job_type_id=<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#form.user_job_type_id#" list="Yes"/>,
我在这里缺少什么?
我不明白为什么我会收到此错误。我正在使用 cfform 将数据从一个 html 页面发送到下一个。见下文。我注意到的另一件事是 angle_changes 字符串的前两个字符被截断。它应该是“0a0a0a0a”,但错误消息中传递了“0a0a0a”。
以下是来自spatialforaging.cfm的相关html/Javascript代码:
<!---all of these get passed from a previous page using cfoutput, except for angle_changes--->
<cfform action="field_transition.cfm" method="post" name="field_form"> 
<cfinput type="hidden" id="angle_changes" name="angle_changes" value="">
<cfinput type="hidden" id="subject_id" name="subject_id" value=#subject_id#>
<cfinput type="hidden" id="times_switched_away" name="times_switched_away" value=#times_switched_away#>
<cfinput type="hidden" id="total_time_unfocused" name="total_time_unfocused" value=#total_time_unfocused#>
<cfinput type="hidden" id="completed_fields" name="completed_fields" value="">
</cfform> 
脚本
//these values get changed earlier in the script
document.getElementById("times_switched_away").value = times_switched_away;
document.getElementById("total_time_unfocused").value = total_time_unfocused;
document.getElementById("completed_fields").value = completed_fields.toString();
//angleChanges is an array containing integers which is created elsewhere …cfquery ×10
coldfusion ×10
cfqueryparam ×2
coldfusion-8 ×2
cfadmin ×1
cfform ×1
cfloop ×1
forms ×1
javascript ×1
mysql ×1
null ×1
select ×1
sql ×1
string ×1