2013-07-13 2 views
0

SQL을 요소 중 하나로 저장하는 테이블이 있습니다. 저장된 SQL 쿼리를 실행할 수 있어야하지만이를 수행하는 방법을 알 수 없습니다. 내가 올바른 SQL 문을 참조 cfquery 등을 실행하기 전에 #PreserveSingleQuotes(arguments.sql)#의 값을 덤프 경우cfquery의 SQL as variable

<cfquery name="qDynamicTag" datasource="#myDSN#"> 
#PreserveSingleQuotes(arguments.sql)# 
</cfquery> 

: 지금까지, 나는 다음과 같은 방법을 사용하고 있습니다. 나는 위의 cfquery 등을 실행하려고하면 그러나, 나는 메시지와 함께 SQLException이 얻을 :

Syntax error at token 0, line 0 offset 0 

내가 실행하는 데 노력하고있어 SQL 문 중 하나의 예 :

select productid from catalog.producttag where tag = 'case' or tag = 'cases' 

어떤 아이디어 내가 뭘 잘못하고 있는거야?

+2

CF로 출력 할 때 SQL의 모습을 잊어 버리십시오. DB 활동의 디버깅 결과는 DB로 전달되는 것을 보여 주어야합니다 ... 잘못된 점을 찾아야합니다. 그것의 얼굴에, 그래도 코드는 괜찮습니다. –

+1

추 신 : 당신은 아마도 쿼리에서 이러한 값을 매개 변수화해야하며 SQL에 하드 코딩하지 않아야합니다. –

+2

구문의 측면에서 볼 때 분명히 잘못된 것은 없습니다. 위의 예는 * example *입니다. 오류가 발생했을 때 * 실제 * sql은 무엇입니까? 앞서 언급했듯이 디버깅 출력 (또는 cfquery의 result 속성)을 사용합니다. – Leigh

답변

1

하! 모든 의견을 주셔서 감사합니다. DB 활동의 디버깅 출력을 확인하라는 제안은 쿼리가 AJAX 호출을 통해 실행 중이기 때문에 페이지의 디버그 섹션에서 DB 활동을 보지 못하고 있음을 깨닫게했습니다. 쿼리와 함께 페이지를 직접 호출 한 후 DB 디버그 결과는 코드가 좋았지 만 데이터베이스의 데이터가 좋지 않음을 나타냅니다. SQL이있는 레코드 중 하나가 존재하지 않습니다. 따라서 cfquery는 빈 문자열을 실행하려고했습니다.