218 lines
No EOL
8.9 KiB
Transact-SQL
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 |