eDosStation/scripts/edosstationname.sql

92 lines
5.4 KiB
MySQL
Raw Permalink Normal View History

2025-01-09 12:47:42 +01:00
<EFBFBD><EFBFBD>USE [eDosLocal] ;
GO
PRINT 'initial settings station' ;
DECLARE @host VARCHAR(20) = HOST_NAME() ;
DECLARE @NeedCreate BIT = 0 ;
DECLARE
@NewVisit INT,
@Cur INT ;
IF NOT EXISTS (SELECT * FROM [dbo].[StationSettings] WHERE [PCNr] = @host)
SET @NeedCreate = 1 ;
DECLARE @s TABLE([ID_Station] [INT] NOT NULL,
[PCNr] [VARCHAR](20) NOT NULL,
[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] NULL,
[useBeep] [TINYINT] NULL,
[checkUser] [BIT] NOT NULL,
[EPDTimeout] [INT] NULL,
[EPDREtries] [INT] NULL,
[RestartCom] [BIT] NULL,
[RestartComFirst] [BIT] NULL,
[OnlyMK2] [BIT] NULL,
[AllowMultipleEPD] [BIT] NULL,
[NewID_Visit] INT) ;
INSERT @s
EXEC [eDos].[eDos].[dbo].[GetStationInfo]
@hostname = @host,
@AllowCreate = @NeedCreate ;
IF @NeedCreate = 1 BEGIN
SET IDENTITY_INSERT [dbo].[StationSettings] ON ;
INSERT [dbo].[StationSettings]([ID_Station], [PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDTimeout], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD])
SELECT
[ID_Station],
[PCNr],
[ComPort],
[Inst_CODE1],
[Inst_CODE2],
[Inst_Name1],
[Inst_Name2],
[TestCSN],
[Reader],
[useTestButtons],
[useBeep],
[checkUser],
[EPDTimeout],
[EPDREtries],
[RestartCom],
[RestartComFirst],
[OnlyMK2],
[AllowMultipleEPD]
FROM @s
WHERE [PCNr] = @host ;
SET IDENTITY_INSERT [dbo].[StationSettings] OFF ;
END ; --end if @NeedCreate = 1
SELECT @NewVisit = [NewID_Visit] FROM @s WHERE [PCNr] = @host ;
IF NOT @NewVisit IS NULL BEGIN
DECLARE @sql NVARCHAR(MAX) ;
IF NOT OBJECT_ID('dbo.VisitSequence') IS NULL
SELECT
@Cur = CONVERT(INT, [current_value])
FROM [sys].[sequences]
WHERE [name] = 'VisitSequence' ;
ELSE SET @Cur = NULL ;
IF @Cur IS NULL
SET @sql = N'CREATE SEQUENCE [dbo].[VisitSequence] AS [INT] START WITH '+CAST(@NewVisit AS NVARCHAR(20))+N' INCREMENT BY 1 MINVALUE 0 MAXVALUE 2147483647 CACHE; GRANT UPDATE ON [dbo].[VisitSequence] TO [eDosStation];' ;
ELSE BEGIN
IF @Cur < @NewVisit
SET @sql = N'ALTER SEQUENCE [dbo].[VisitSequence] RESTART WITH '+CAST(@NewVisit AS NVARCHAR(20))+N';' ;
END ;
IF @sql IS NOT NULL BEGIN
EXEC [sys].[sp_executesql] @sql ;
END ;
END ;