91 lines
5.4 KiB
Transact-SQL
91 lines
5.4 KiB
Transact-SQL
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 ;
|