Query of Queries Issues

I have the following query, does not seems to work i am using CF10. it is showing nothing:

<cfquery name = "qryCPTDetails" datasource=#request.DSN# >
      SELECT response as response FROM table WHERE PFORMID=
      (SELECT MAX(PFORMID) FROM pForms WHERE patientId=#patind# and formId=11)
</cfquery>
<cfdump var="#qryCPTDetails#">
<cfquery name = "qryCPTDetailsPending" dbtype="query">
      SELECT * from qryCPTDetails
    where #GetToken(response,2,'ü')# = 'pending'
</cfquery>


string is like this

22208 :  ADL SEGünoncertifiedñ06/23/2013
i tried even using the function inside the cfquery, it still throws error, still lost what causing this
LVL 16
Gurpreet Singh RandhawaWeb DeveloperAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
_agx_Connect With a Mentor Commented:
why i am unable to use the function inside the cfquery which uses the datasource

Because CF code can't run inside a database.  The two are totally separate. CF knows nothing about SQL and your db knows nothing about CFML.

When you run a cfquery, the CF server first translates all the variables/functions:

<cfset something = "john"
<cfquery name="q" ...>
        SELECT Columns FROM Table WHERE ColumnName = '#something#'
</cfquery>

into plain text values.  Then plugs them into the SQL string:

      SELECT Columns FROM Table WHERE ColumnName = 'john'

Finally it sends the plain text sql on to the db.  The db never sees any CF variables or functions. They're evaluated long before the SQL ever makes it to the db.
0
 
Bhavesh ShahLead AnalysistCommented:
m not sure,

but can u try with this one.

SELECT ASCII('ü'),CHAR(252)

<cfquery name = "qryCPTDetailsPending" dbtype="query">
      SELECT * from qryCPTDetails 
    where #GetToken(response,2,CHR(252))# = 'pending'
</cfquery>

Open in new window

0
 
Gurpreet Singh RandhawaWeb DeveloperAuthor Commented:
thanks but this is not a related answer, my question why CF functions does not inside cfquery, i know they work, but why not in CF 10. Maybe i am missing something
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
SidFishesCommented:
query of queries have very limited allowed functions. You can't even do things like

left(response)


What are you trying to do?
0
 
_agx_Commented:
I think the closest you can get is to use LIKE.  Don't forget QoQ's are case sensitive too

WHERE  lower(response) LIKE <cfqueryparam value"%üpendingü%" cfsqltype="cf_sql_varchar">

Open in new window


query of queries have very limited allowed functions.

Yep. IIRC, the only functions QoQ's supports are:  

* UPPER()
* LOWER()
* CAST()

Maybe one more, but nothing else.
0
 
Gurpreet Singh RandhawaWeb DeveloperAuthor Commented:
ok, that is limitation of QoQ, why i am unable to use the function inside the cfquery which uses the datasource
0
 
SidFishesCommented:
you say you are getting an error...please post it
0
 
Gurpreet Singh RandhawaWeb DeveloperAuthor Commented:
ok, i think i missing something here :

SELECT {fn Left(Title, 50)} As ShortTitle
  FROM mytable

Left is also a CF Function and Left is also in sql [so probably it is referring to the scalar function which is present in sql]

correct me if i am wrong
0
 
_agx_Commented:
Correct.  Though they both have left() functions, that statement is using your database's left() function - not the CF #left()# function.
0
 
SidFishesCommented:
Not that it really matters but I'd point out that my answer that QofQ can't do that is correct....
0
 
_agx_Commented:
I agree with Sid. The question was "what's causing this error".  The correct answer is QoQ's don't support it. My remarks just elaborate on that, but the correct answer was already given.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.