SSRS を使用してテーブルを更新しています。レポートを実行する前に、ユーザーがヘッダーから選択する一連のパラメーターがあります。レポートは、ストアド プロシージャを実行してテーブルを更新した後に実行されます。私の問題は、すべてではありませんが、場合によっては書き込みが行われるが、レポートに結果が表示されないことです。テーブルを確認でき、情報が正しく更新されています。
私が知りたいのは、ストアド プロシージャへの書き込み後までレポートを遅らせる方法があるかどうかです。
呼び出されるストアド プロシージャは次のとおりです。
USE [InvoiceSHC]
GO
/****** Object: StoredProcedure [dbo].[MasterDataUpdate] Script Date: 01/25/2013 14:07:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Tim Vavra
-- Create date: 1/15/2013
-- Description: This procedure is designed to update the table MasterData
-- with information entered into SSRS report by Production Assistants.
-- this information will be used to create the invoice for SHC and provide metric
-- information.
-- =============================================
ALTER PROCEDURE [dbo].[MasterDataUpdate]
-- Add the parameters for the stored procedure here
@Ref float,
@Phase nvarchar(255),
@Page nvarchar(255),
@PageType nvarchar(255),
@Percent int,
@ChangeType nvarchar(255),
@UserName varchar(MAX)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Insert into MasterData
(Ad,Page,[Page Type],[Percent],Phase,[Change Type],LstChng, [UID])
values( @Ref, @Page, @PageType, @Percent, @Phase, @ChangeType, GETDATE(), @UserName)
end
update MasterData
set [Base Page] =
Case
When [Page] like '[1-99]' then [Page]
When [Page] like '%[A-Z]' then left([Page],1)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01)
When[Page] like '%-%' then LEFT([Page],1)+(cast(RIGHT([page],2)as int)*.01)+.26
end
update MasterData
set [Alt Type] =
Case
When [Page] like '[1-99]' then 'B'
When [Page] like '%[A-Z]' then 'A'
When[Page] like '%-%' then 'T'
END
レポートで使用するデータセットのクエリは次のとおりです。
SELECT MasterData.Ad, MasterData.Page, MasterData.[Page Type], MasterData.[Percent], MasterData.Phase, MasterData.[Change Type], MasterData.LstChng,
PageCost.Amt AS PageCost, VersionCost.Amt AS VersionCost
FROM MasterData INNER JOIN
PageCost ON MasterData.[Page Type] = PageCost.PageType INNER JOIN
VersionCost ON MasterData.[Change Type] = VersionCost.ChangeType
WHERE (MasterData.Ad = @Ref) AND (MasterData.Phase = @Phase) AND (MasterData.Page = @Page)
これが誰かが解決策を提供するのに役立つ十分な情報であることを願っています.