2011-12-28 3 views
3

cfscript를 사용하여 저장 프로 시저를 호출하지만 호출에 addProcResult 메서드를 추가하면 ColdFusion에서 오류 을 반환합니다. 결과에 지정된 키가 구조에 없습니다. 메서드를 제거하면 오류가 해결되고 결과에 영향을 미치지 않지만 오류가 발생한 이유를 알고 싶습니다. <cfstoredproc><cfprocparam>을 사용하면 오류가 생성되지 않습니다. CF9를 실행 중입니다. 내 코드는 아래와 같습니다.cfscript에서 addstoredproc 메서드로 오류가 발생했습니다.

spService = new storedProc(); 
spService.setDatasource("mydb"); 
spService.setProcedure("someSP"); 
spService.setUsername("TaskRunner"); 
spService.setPassword("password"); 
spService.addProcResult(name="result",resultset=1); 
spService.execute(); 
+1

저장 프로 시저가 실제로 결과 집합을 반환합니까? 아니면 출력 매개 변수를 통해 응답을 반환합니까? Procs는 둘 다 (또는 둘 다!) 할 수 있지만 ... 후자 만 수행하면 결과 세트를 얻지 못할 것이고 따라서 쏟아 붓을 것이 없기 때문에 왜 오류가 발생하는지 설명 할 수 있습니다 "결과 세트가 존재하지 않음"을 저장/저장하기위한 호출을 제거합니다. –

+0

proc는 결과 세트 나 결과를 반환하지 않습니다. 그래서 그 말이 맞는 것 같아요,하지만 왜 태그를 사용할 때 오류가 아닌가요? – RHPT

+1

제 추측입니다 : 이전 버전의 CF와의 하위 호환성. 스크립트 기반 proc 호출에 대한 지원이 추가 된 방법을 보면, 어리 석음이 발생했을 때보다 극적인 오류를 던질 수있는 융통성을 갖지만 CF 태그를 사용하면 고급 기능을 사용할 수 없습니다. 동시에, Java 객체를 인스턴스화하고 결과에 var를 CFSET하려고 시도하는 동안 NULL을 반환하는 메소드를 호출하면 읽을 때 변수가 정의되지 않은 오류가 발생합니다. 당신이 CFSET이라고 불렀던 코드. 비슷한 종류의 문제 - CFSET은 여전히 ​​통과하지만 - 그것이 포함하고있는 것은 존재하지 않습니다. –

답변

2

실제로 결과 집합을 반환하지 않습니다 저장 프로 시저가 (아마도 그것은 출력 매개 변수를 반환 - 모두 또는 아무것도) 경우이 오류가 발생합니다.

.addProcResult()에 대한 호출을 제거하기 만하면됩니다.

관련 문제