2012-02-13 4 views
0

ColdFusion에서 3 개의 입력 및 6 개의 출력으로 다음 cfstoredproc 호출이 있습니다. 가능한 결과에 대해 열거 된 저장 프로 시저, si_updateProject에서 내ColdFusion의 SQL 저장 프로 시저 및 해당 쿼리에 SELECT 문 찾기

<cfstoredproc procedure="si_updateProject" datasource="#mydsn#" returncode="yes"> 
    <cfprocparam type="IN" cfsqltype="CF_SQL_VARCHAR" value="#platform#"> 
    <cfprocparam type="IN" cfsqltype="CF_SQL_VARCHAR" value="#projectData#"> 
    <cfprocparam type="IN" cfsqltype="CF_SQL_VARCHAR" value="#sysData#"> 
    <cfprocresult name="projectInfo" resultSet=1> 
    <cfprocresult name="newPSA" resultSet=2> 
    <cfprocresult name="newStatus" resultSet=3> 
    <cfprocresult name="goliveSystems" resultSet=4> 
    <cfprocresult name="goliveHistory" resultSet=5> 
    <cfprocresult name="newSystems" resultSet=6> 
</cfstoredproc> 

, 어떻게 내가 6 결과 집합 쿼리를 확인합니까? 저장된 proc에는 여러 문장 (선택, 업데이트, 삭제 등)이 있습니다.

+1

해결하려는 더 큰 문제가 있습니까? 왜냐하면 나는 결과를 생성하고'columnList' 값을 비교하는 SELECT 명령문에 대해 SQL을 눈으로 보는 것 이외의 다른 방법을 알지 못하기 때문입니다. 즉 첫 번째 문은 resultSet = 1, 두 번째 문은 resultSet = 2 등 ... – Leigh

+0

@Leigh - 일부 새로운 조건을 포함하도록 select 문 중 하나를 수정하고 올바른 SQL 문을 업데이트해야합니다. storedproc은 많은 가상 테이블과 함께 작동하므로 일단 storedproc가 완료되면 출력을 볼 수 없습니다. 나는 당신이 제안한 것을하고 있었지만 storedproc이 가상 테이블과 작동하기 때문에 데이터를 확인할 수 없다. - 당신이 나에게 가르쳐 줄 수있는 또 다른 트릭을 안다면. – HPWD

+1

쉬운 방법이 정말로 없습니다. 스토어드 프로 시저에 대한 수정을 테스트 할 때, 나는 보통 CREATE PROC ... BEGIN과 END 문을 주석 처리하고 쿼리 분석기에서 수동으로 내용을 실행한다. 예를 적어주세요. – Leigh

답변

1

(위의 댓글에서 시놉시스 ..)

나는 결과를 생성 SELECT 문에 대한 SQL을 째려하고 columnList 값을 비교 이외의 다른 방법을 인식하지입니다.

가상 테이블이 포함 된 저장 프로 시저에 대한 수정을 테스트해야 할 때 대개 CREATE PROCEDURE ... BEGINEND 문을 주석 처리하고 쿼리 분석기에서 수동으로 sql을 실행합니다. 매우 낮은 기술이지만 빠른 테스트에 유용합니다.

--- Comment out the procedure wrapper and run the sql in 
--- the query analyzer manually with test parameters 
DECLARE @platform varchar(50) 
DECLARE @projectData varchar(50) 
DECLARE @sysData varchar(50) 

SET @platform = 'foo' 
SET @projectData = 'bar' 
SET @sysData = 'qax' 

/*  
CREATE PROCEDURE si_updateProject 
     @platform varchar(50) 
     , @projectData varchar(50) 
     , @sysData varchar(50) 
AS 
BEGIN 
*/ 

     -- simulate some virtual tables 
     DECLARE @table1 TABLE (columnOne varchar(50), createdDate datetime) 
     DECLARE @table2 TABLE (columnTwo varchar(50), createdDate datetime) 
     DECLARE @table3 TABLE (columnThree varchar(50), createdDate datetime) 

     -- now you can do whatever debugging you want with the virtual tables ... 
     SELECT 'Testing the 1st resultset' AS DebugText, * 
     FROM @table1 


     -- simulate some resultsets 
     SELECT columnOne FROM @Table1 
     SELECT columnTwo FROM @Table2 
     SELECT columnThree FROM @Table3 

/* 
END */ 
GO