진행

2014-04-08 5 views
0

난 다음 저장 프로 시저가 있습니다진행

ALTER PROCEDURE [dbo].[spRptFundsTransferSchoolProfileSelect]   
(   
    @SessionID int ,  
    @DateRangeStart DateTime,  
    @DateRangeEnd DateTime  
)   
AS   
BEGIN   
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  


    --set @SessionID = 1175  

    SELECT tss.school_id,   
      ts.school_code,   
      tss.id,   
      ts.school_name,   
      ta.address,   
      ta.city,   
      ta.zip,    

    FROM T_School ts   

    Execute [dbo].[spRptFundsTransferPaymentSummarySelect]  @SessionID ,  
                   @DateRangeStart ,  
                   @DateRangeEnd  
END 

및 반환 출력 모델 다음

namespace FundTr.de 
{ 
    public class FundTrans : ModelBase 
    { 
     public string school_name { get; set; } 

     public string school_code { get; set; } 

     public int school_id { get; set; } 

     public long id { get; set; } 

     public string address { get; set; } 

     public string city { get; set; } 

     public string zip { get; set; } 

     public string Date_Added { get; set; }//from dbo.spRptFundsTransferPaymentSummarySelect procedure 

    } 
} 

contolller :

public ActionResult GetFundTransferReportTemplate(DateTime DateRangeStart, DateTime DateRangeEnd) 
     { 
      return SmartJson(ReportService.GetFundTransferReportTemplate(DateRangeStart, DateRangeEnd)); 

     } 

서비스 :

public static FundTransferReportTemplate GetFundTransferReportTemplate(DateTime DateRangeStart, DateTime DateRangeEnd) 
     { 
      long SessionID = 1175;// SmartState.session.schoolSession.SessionId; 
      var repo = GetRepository<FundTransferReportTemplate>(); 
      var da = repo.GetSingleObject("spRptFundsTransferSchoolProfileSelect", new { DateRangeStart, DateRangeEnd, SessionID }); 
      return da; 

     } 

컨트롤러를 누르면 마지막 값인 "Date_Added"(이 필드는 프로 시저 dbo.spRptFundsTransferPaymentSummarySelect에서 제외)를 제외한 모든 값을 얻습니다. 나는 dbo.spRptFundsTransferPaymentSummarySelect.how에 대한 출력 값을 얻지 못하고있다는 것을 알 수 있습니다. 주 프로 시저 내에서 실행되는 프로 시저의 출력 값을 액세스 할 수 있습니까?

답변

0

SP에서 점에서, 그것은 SELECT 문을 실행하고 SP spRptFundsTransferPaymentSummarySelect를 실행, 위에서 아래를 행한다. SP를 spRptFundsTransferPaymentSummarySelect가 단일 값을 반환 가정하고 DATE_ADDED

당신은 먼저 spRptFundsTransferPaymentSummarySelect를 호출하고 값을 저장할 변수 @Date_Added에 다음 SELECT 문에서 사용해야합니다.

ALTER PROCEDURE [dbo].[spRptFundsTransferSchoolProfileSelect] 
(
    @SessionID int, 
    @DateRangeStart DateTime, 
    @DateRangeEnd DateTime 
) 
AS 
BEGIN 
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
    DECLARE @Date_Added DateTime 

    Execute @Date_Added = [dbo].[spRptFundsTransferPaymentSummarySelect] @SessionID, 
                   @DateRangeStart, 
                   @DateRangeEnd 

    --set @SessionID = 1175 

    SELECT tss.school_id, 
     ts.school_code, 
     ts.id, 
     ts.school_name, 
     ta.address, 
     ta.city, 
     ta.zip, 
     @Date_Added AS Date_Added 
    FROM T_School ts 
END 
+0

첫 번째 SP가 두 개 이상의 레코드를 반환하는 경우 최종 출력물에 CURSORS를 사용해야합니다. – athar13