81 lines
3.6 KiB
Transact-SQL
81 lines
3.6 KiB
Transact-SQL
ALTER PROCEDURE [dbo].[stp_ImportAll]
|
|
AS
|
|
BEGIN
|
|
|
|
-- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
-- Effettua tutti i task di import
|
|
EXEC dbo.stp_GetMachineSigLog
|
|
EXEC dbo.stp_GetMachineFluxLog
|
|
EXEC dbo.stp_GetMachineProdData
|
|
|
|
DECLARE @idxMax INT = 0
|
|
DECLARE @idxCur INT = 0
|
|
|
|
-- SignalLog
|
|
BEGIN tran
|
|
SELECT @idxMax = ISNULL(MAX(IdxEv),0)
|
|
FROM MachineSignalLog
|
|
|
|
SELECT @idxCur = ISNULL(MAX(LastIdx),0)
|
|
FROM SyncState
|
|
WHERE TableName ='SignLog'
|
|
|
|
IF(@idxMax > 0 AND @idxMax > @idxCur)
|
|
BEGIN
|
|
UPDATE SyncState
|
|
SET LastIdx = @idxMax
|
|
,LastUpdate = GETDATE()
|
|
,Note = 'Upd from ' + CAST(@idxCur AS NVARCHAR(50))
|
|
WHERE TableName ='SignLog'
|
|
AND LastIdx < @IdxMax
|
|
END
|
|
COMMIT tran
|
|
|
|
-- ProdData
|
|
BEGIN tran
|
|
SELECT @idxMax = ISNULL(MAX(IdxPD),0)
|
|
FROM MachineProdData
|
|
|
|
SELECT @idxCur = ISNULL(MAX(LastIdx),0)
|
|
FROM SyncState
|
|
WHERE TableName ='ProdData'
|
|
|
|
IF(@idxMax > 0 AND @idxMax > @idxCur)
|
|
BEGIN
|
|
UPDATE SyncState
|
|
SET LastIdx = @idxMax
|
|
,LastUpdate = GETDATE()
|
|
,Note = 'Upd from ' + CAST(LastIdx AS NVARCHAR(50))
|
|
WHERE TableName ='ProdData'
|
|
END
|
|
|
|
COMMIT tran
|
|
|
|
-- FluxLog
|
|
BEGIN tran
|
|
SELECT @idxMax = ISNULL(MAX(IdxFL),0)
|
|
FROM MachineFluxLog
|
|
|
|
SELECT @idxCur = ISNULL(MAX(LastIdx),0)
|
|
FROM SyncState
|
|
WHERE TableName ='FluxLog'
|
|
|
|
IF(@idxMax > 0 AND @idxMax > @idxCur)
|
|
BEGIN
|
|
UPDATE SyncState
|
|
SET LastIdx = @idxMax
|
|
,LastUpdate = GETDATE()
|
|
,Note = 'Upd from ' + CAST(LastIdx AS NVARCHAR(50))
|
|
WHERE TableName ='FluxLog'
|
|
END
|
|
|
|
COMMIT tran
|
|
|
|
-- ...e poi restituisce lettura tabella SyncState
|
|
SELECT *
|
|
FROM SyncState
|
|
|
|
END |