eDosStation/eDosLocal/SqlUpdates/update_006.sql
2026-10-22 16:13:39 +02:00

218 lines
No EOL
8.9 KiB
Transact-SQL

DECLARE @TargetVersionNumber INT=5, @VersionNumber INT;
IF OBJECT_ID('dbo.[DatabaseVersion]') IS NULL BEGIN
CREATE TABLE [dbo].[DatabaseVersion] ([VersionNumber] INT NOT NULL,
[VersionDate] DATETIME NOT NULL,
[Description] NVARCHAR(200) NULL);
INSERT INTO [dbo].[DatabaseVersion]([VersionNumber], [VersionDate], [Description])
VALUES(1, GETDATE(), 'Initial version');
SET @VersionNumber=1;
END;
ELSE BEGIN
SELECT @VersionNumber=ISNULL(MAX([VersionNumber]), 0)
FROM [dbo].[DatabaseVersion];
END;
-- If version target is not met, disable execution for all subsequent batches
IF @VersionNumber<>@TargetVersionNumber BEGIN
PRINT 'Target version condition not met (Version is not '+CAST(@TargetVersionNumber AS VARCHAR(10))+'). Canceling rest of script.';
SET NOEXEC ON;
END;
GO
IF NOT EXISTS (SELECT 1
FROM [sys].[columns]
WHERE [object_id]=OBJECT_ID('[dbo].[EPDDeviceLog]')AND [name]='r_ErrorUnexpectedResponse')
ALTER TABLE [dbo].[EPDDeviceLog] ADD [r_ErrorUnexpectedResponse] int;
GO
CREATE OR ALTER PROCEDURE [dbo].[EPDAddLog] @EPDID INT, @FirmWare VARCHAR(50), @BatNoload_mV INT=0, @Batload_mV INT=0, @CPU_mV INT=0, @ID_Station INT, @ID_Visit INT, @epdType TINYINT, @r_InvalidState INT=0, @r_OperationTimeout INT=0, @r_InsufficientPriv INT=0, @r_OperationFailed INT=0, @r_ErrorUnexpectedResponse INT=0, @r_OtherError INT=0, @WriteTime INT=0, @Registered BIT=0, @HardWare VARCHAR(50)=null, @DllVersion VARCHAR(50)=null
AS BEGIN
DECLARE @now DATETIME=GETDATE();
IF NOT EXISTS (SELECT * FROM [dbo].[EPDDevice] WHERE [EPDID]=@EPDID)
INSERT [dbo].[EPDDevice]([EPDID], [FirmWare], [First_Station], [firstseen], [Last_Station], [lastseen], [epdType], [synced], [HardWare])
VALUES(@EPDID, @FirmWare, @ID_Station, @now, @ID_Station, @now, @epdType, 0, @HardWare);
ELSE
UPDATE [dbo].[EPDDevice]
SET [Last_Station]=@ID_Station, [lastseen]=@now, [synced]=0, [HardWare]=@HardWare
WHERE [EPDID]=@EPDID;
INSERT [dbo].[EPDDeviceLog]([EPDID], [ID_Station], [ID_Visit], [updated], [BatNoload_mV], [Batload_mV], [CPU_mV], [r_InvalidState], [r_OperationTimeout], [r_InsufficientPriv], [r_OperationFailed], [r_ErrorUnexpectedResponse], [r_OtherError], [WriteTime], [Registered] , [DllVersion])
VALUES(@EPDID, -- EPDID - int
@ID_Station, -- ID_Station - int
@ID_Visit, -- ID_Visit - int
@now, -- updated - datetime
@BatNoload_mV, @Batload_mV, @CPU_mV, @r_InvalidState, @r_OperationTimeout, @r_InsufficientPriv, @r_OperationFailed, @r_ErrorUnexpectedResponse, @r_OtherError, @WriteTime, @Registered, @DllVersion);
END;
GO
CREATE OR ALTER PROCEDURE [EPDDeviceLogToSync] @ID_STATION INT, @MaxVisit INT
AS
SELECT [EPDID], [ID_Station], [ID_Visit], [updated], [BatNoload_mV], [Batload_mV], [CPU_mV], [r_InvalidState], [r_OperationTimeout], [r_InsufficientPriv], [r_OperationFailed],[r_ErrorUnexpectedResponse]=ISNULL([r_ErrorUnexpectedResponse],0), [r_OtherError], [Registered], [WriteTime], [DllVersion]=ISNULL([DllVersion],'')
FROM [dbo].[EPDDeviceLog]
WHERE([ID_Station]=@ID_STATION)AND([ID_Visit]>@MaxVisit)
ORDER BY [ID_Visit];
GO
ALTER PROCEDURE [dbo].[StationSettingsSelect]
AS
BEGIN
SELECT [ID_Station],
[PCNr],
[ComPort],
[Inst_CODE1],
[Inst_CODE2],
[Inst_Name1],
[Inst_Name2],
[TestCSN],
[Reader],
ISNULL([useTestButtons], 0) AS [useTestButtons],
ISNULL([useBeep], 22) AS [useBeep],
ISNULL([checkUser], 0) AS [checkUser],
ISNULL([EPDTimeout], 10000) AS [EPDTimeout],
ISNULL([EPDREtries], 1) AS [EPDRetries],
ISNULL([RestartCom], 0) AS [RestartCom],
ISNULL([RestartComFirst], 0) AS [RestartComFirst],
ISNULL([OnlyMK2], 0) AS [OnlyMK2],
ISNULL([AllowMultipleEPD], 0) AS [AllowMultipleEPD],
ISNULL([WriteConfig], 0) AS [WriteConfig],
ISNULL([IssueWhenDoseAlarms], 0) AS [IssueWhenDoseAlarms],
[ElatecPort],
[SleepAfterClear] = ISNULL([SleepAfterClear], 6000),
[ResponseTimeout] = ISNULL([ResponseTimeout], 500),
[DiscoveryCacheTimeout] = ISNULL([DiscoveryCacheTimeout], 5000),
[ReconnectRetries] = ISNULL([ReconnectRetries], 5),
[SleepBeforeReconnect] = ISNULL([SleepBeforeReconnect], 1000),
[SleepAfterDisconnect] = ISNULL([SleepAfterDisconnect], 1000),
[DoDisconnectAfterClear] = ISNULL([DoDisconnectAfterClear], 0),
[DoDisconnectBeforeReconnect] = ISNULL([DoDisconnectBeforeReconnect], 0),
[ProtectedSession] = ISNULL([ProtectedSession], 0),
[UserProfile] = ISNULL([UserProfile], 0)
FROM [dbo].[StationSettings]
WHERE [PCNr] = HOST_NAME();
END;
GO
USE [eDosLocal]
GO
/****** Object: StoredProcedure [dbo].[StationSettingsUpdate] Script Date: 22/10/2026 12:48:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[StationSettingsUpdate]
@ComPort INT = NULL,
@Inst_CODE1 INT = NULL,
@Inst_CODE2 INT = NULL,
@Inst_Name1 VARCHAR(50) = NULL,
@Inst_Name2 VARCHAR(50) = NULL,
@TestCSN VARCHAR(50) = NULL,
@Reader VARCHAR(70) = NULL,
@useTestButtons BIT = 0,
@useBeep TINYINT = 22,
@checkUser BIT = 0,
@EPDTimeout INT = 10000,
@EPDRetries INT = 1,
@RestartCom BIT = 0,
@RestartComFirst BIT = 0,
@OnlyMK2 BIT = 0,
@AllowMultipleEPD BIT = 0,
@WriteConfig BIT = 1,
@IssueWhenDoseAlarms BIT = 0,
@ElatecPort INT = NULL,
@SleepAfterClear INT = 6000,
@ResponseTimeout INT=500,
@DiscoveryCacheTimeout INT=5000,
@ReconnectRetries INT=5,
@SleepBeforeReconnect INT=1000,
@SleepAfterDisconnect INT=1000,
@DoDisconnectAfterClear BIT=0,
@DoDisconnectBeforeReconnect BIT=0,
@ProtectedSession bit=0,
@UserProfile BIT=0
AS
BEGIN
IF NOT EXISTS (SELECT 1 FROM [dbo].[StationSettings] WHERE [PCNr] = HOST_NAME())
BEGIN
INSERT [dbo].[StationSettings]
(
[PCNr],
[ComPort],
[Inst_CODE1],
[Inst_CODE2],
[Inst_Name1],
[Inst_Name2],
[TestCSN],
[Reader],
[useTestButtons],
[useBeep],
[checkUser],
[EPDREtries],
[RestartCom],
[RestartComFirst],
[OnlyMK2],
[AllowMultipleEPD],
[WriteConfig],
[IssueWhenDoseAlarms],
[ElatecPort],
[SleepAfterClear],
[ResponseTimeout],
[DiscoveryCacheTimeout],
[ReconnectRetries],
[SleepBeforeReconnect],
[SleepAfterDisconnect],
[DoDisconnectAfterClear],
[DoDisconnectBeforeReconnect],[protectedSession],[userProfile]
)
VALUES
(HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons,
@useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD, @WriteConfig,
@IssueWhenDoseAlarms, @ElatecPort, @SleepAfterClear, @ResponseTimeout ,
@DiscoveryCacheTimeout ,
@ReconnectRetries ,
@SleepBeforeReconnect,
@SleepAfterDisconnect,
@DoDisconnectAfterClear,
@DoDisconnectBeforeReconnect,
@ProtectedSession,
@UserProfile);
END
ELSE
BEGIN
UPDATE [dbo].[StationSettings]
SET [ComPort] = @ComPort,
[Inst_CODE1] = @Inst_CODE1,
[Inst_CODE2] = @Inst_CODE2,
[Inst_Name1] = @Inst_Name1,
[Inst_Name2] = @Inst_Name2,
[TestCSN] = @TestCSN,
[Reader] = @Reader,
[useTestButtons] = @useTestButtons,
[useBeep] = @useBeep,
[checkUser] = @checkUser,
[EPDTimeout] = @EPDTimeout,
[EPDREtries] = @EPDRetries,
[RestartCom] = @RestartCom,
[RestartComFirst] = @RestartComFirst,
[OnlyMK2] = @OnlyMK2,
[AllowMultipleEPD] = @AllowMultipleEPD,
[WriteConfig] = @WriteConfig,
[IssueWhenDoseAlarms] = @IssueWhenDoseAlarms,
[ElatecPort] = @ElatecPort,
[SleepAfterClear] = @SleepAfterClear,
[ResponseTimeout] = @ResponseTimeout,
[DiscoveryCacheTimeout] = @DiscoveryCacheTimeout,
[ReconnectRetries] = @ReconnectRetries,
[SleepBeforeReconnect] = @SleepBeforeReconnect,
[SleepAfterDisconnect] = @SleepAfterDisconnect,
[DoDisconnectAfterClear] = @DoDisconnectAfterClear,
[DoDisconnectBeforeReconnect] = @DoDisconnectBeforeReconnect,
[ProtectedSession] = @ProtectedSession,
[UserProfile] = @UserProfile
WHERE [PCNr] = HOST_NAME();
END
END
go
INSERT INTO [dbo].[DatabaseVersion]([VersionNumber], [VersionDate], [Description])
VALUES(6, GETDATE(), 'r_ErrorUnexpectedResponse');
GO
-- Final Batch: Turn execution back ON for subsequent scripts in the same session
SET NOEXEC OFF;
GO