2011-09-23 48 views
0

我從另一個存儲過程調用存儲過程。該存儲過程總是返回一個整數值,所以我接受一個整數變量的值。從存儲過程返回的整數中分配值+ Sybase

EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart 

但是,即使存儲過程返回@IsBusinessDay 1個值爲0

代碼塊

SELECT @ExecutionStart = CONVERT(VARCHAR, GETDATE(), 107) 

EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart 

IF(@IsBusinessDay = 0) 
BEGIN 
    IF(CONVERT(VARCHAR,@InterMediateStartDate,108) > CONVERT(VARCHAR,GETDATE(),108)) 
    BEGIN 
     INSERT INTO TbJobQueue (JobId, ScheduleId, DueDate, Status, ExpiryDate, 
           ProcessingDate, InputUser, InputTime, 
           LastModifiedBy, LastModifiedTime) 
     VALUES (@JobId, @ScheduleId, @InterMediateStartDate, 'NQUE', NULL, 
       NULL, 'Scheduler', GETDATE(), NULL, NULL) 
    END 
END 

請幫助。

感謝

+0

您可以提供更多信息。 什麼是你的存儲過程,... 沒有更多的信息,我們不能幫你 – Sven

+0

我插入記錄與一個存儲過程。現在檢查今天是營業日還是不行,我將今天的日期值分配給@ExecutionStart並調用過程LiteIsWorkingDay。 – Denish

+0

此程序將在HolidayMaster中檢查該日是否爲工作日。如果工作日那麼它返回0否則它返回1.所以我期望從該存儲過程中0和1的值。這是給予適當的結果。如果被稱爲孤立的話,上面給出的甚至是給出正確的結果但是當StoreBroker中的值爲IsBusinessDay時,返回值保持0不變。 – Denish

回答

1

如果你想在存儲過程中,你必須做出這樣的一個變量的值:

  1. 聲明輸出參數在LiteIsWorkingDay存儲過程

    創建過程LiteIsWorkingDay @ExecutionStart VARCHAR(20),@IsBusinessDay INT輸出

  2. 在LiteIsWorkingDay存儲過程中,您必須爲@IsBusinessDay輸出參數選擇一個值。

  3. 在調用LiteIsWorkingDay你需要做這樣的事情來獲得它的值存儲過程:

    聲明@ExecutionStart VARCHAR(20) 選擇@ExecutionStart =轉換(VARCHAR,GETDATE(),107)

    聲明@IsBusinessDay詮釋 EXEC LiteIsWorkingDay,@IsBusinessDay輸出

而這一切。現在變量@IsBusinessDay將具有您想要的值: