303 lines
18 KiB
Transact-SQL
303 lines
18 KiB
Transact-SQL
UPDATE TBDD_MODULES SET DB_VERSION = '2.0.0.1' where UPPER(NAME) = UPPER('Clipboard-Watcher')
|
||
GO
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW DROP COLUMN PROCESS_NAME;
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW DROP COLUMN AUTOMATION_ID;
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW DROP COLUMN FRAMEWORK_ID;
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW DROP COLUMN PROFILE_ID;
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW DROP COLUMN REGEX_CLIPBOARD;
|
||
DELETE FROM TBCW_PROF_REL_WINDOW
|
||
GO
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW ADD PROCESS_ID INTEGER NOT NULL
|
||
GO
|
||
ALTER TABLE TBCW_PROF_REL_WINDOW
|
||
ADD CONSTRAINT FK_PROCESS_ID FOREIGN KEY (PROCESS_ID)
|
||
REFERENCES TBCW_PROFILE_PROCESS (GUID)
|
||
ON DELETE CASCADE
|
||
ON UPDATE CASCADE
|
||
|
||
ALTER TABLE TBCW_PROF_REL_CONTROL DROP COLUMN PROCESS_NAME;
|
||
ALTER TABLE TBCW_PROF_REL_CONTROL
|
||
ADD CONSTRAINT FK_WINDOW_ID FOREIGN KEY (WINDOW_ID)
|
||
REFERENCES TBCW_PROF_REL_WINDOW (GUID)
|
||
ON DELETE CASCADE
|
||
ON UPDATE CASCADE
|
||
ALTER TABLE TBCW_PROF_REL_CONTROL DROP COLUMN PROFILE_ID
|
||
GO
|
||
|
||
ALTER TRIGGER [dbo].[TBCW_PROF_REL_WINDOW_AFT_INS] ON [dbo].[TBCW_PROF_REL_WINDOW]
|
||
WITH EXECUTE AS CALLER
|
||
FOR INSERT
|
||
AS
|
||
BEGIN TRY
|
||
DECLARE @SEQUENCE TINYINT
|
||
,@MAX_SEQUENCE TINYINT
|
||
,@PROCESS_ID INT
|
||
,@GUID INTEGER
|
||
SELECT @SEQUENCE = SEQUENCE
|
||
,@PROCESS_ID = PROCESS_ID
|
||
,@GUID = GUID FROM inserted
|
||
|
||
SELECT @MAX_SEQUENCE = ISNULL(MAX(SEQUENCE),0) FROM TBCW_PROF_REL_WINDOW WHERE PROCESS_ID = @PROCESS_ID AND GUID <> @GUID
|
||
UPDATE TBCW_PROF_REL_WINDOW SET SEQUENCE = @MAX_SEQUENCE
|
||
FROM INSERTED
|
||
WHERE TBCW_PROF_REL_WINDOW.GUID = INSERTED.GUID
|
||
END TRY
|
||
BEGIN CATCH
|
||
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
||
+ ' - ERROR-MESSAGE: '
|
||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||
END CATCH
|
||
GO
|
||
|
||
ALTER VIEW [dbo].[VWCW_PROFILE_REL_WINDOW] AS
|
||
SELECT DISTINCT TOP 100 PERCENT
|
||
T.GUID
|
||
,T.PROCESS_ID
|
||
,T2.USER_ID
|
||
,T1.PROC_NAME AS PROCESS_NAME
|
||
,T1.PROFILE_ID
|
||
,T.DESCRIPTION
|
||
,T.REGEX
|
||
,T.SEQUENCE
|
||
FROM
|
||
TBCW_PROF_REL_WINDOW T
|
||
,TBCW_PROFILE_PROCESS T1
|
||
,VWCW_USER_PROFILE T2
|
||
WHERE
|
||
T.PROCESS_ID = T1.GUID AND
|
||
T1.PROFILE_ID = T2.GUID
|
||
|
||
ORDER BY T.SEQUENCE
|
||
|
||
GO
|
||
|
||
|
||
ALTER TRIGGER [dbo].[TBCW_PROF_REL_CONTROLAFT_INS] ON [dbo].[TBCW_PROF_REL_CONTROL]
|
||
WITH EXECUTE AS CALLER
|
||
FOR INSERT
|
||
AS
|
||
BEGIN TRY
|
||
DECLARE @SEQUENCE TINYINT
|
||
,@MAX_SEQUENCE TINYINT
|
||
,@WINDOW_ID INT
|
||
,@GUID INTEGER
|
||
,@AUTOMATION_ID VARCHAR(100)
|
||
SELECT @SEQUENCE = SEQUENCE
|
||
,@WINDOW_ID = @WINDOW_ID
|
||
,@GUID = GUID
|
||
,@AUTOMATION_ID = AUTOMATION_ID
|
||
FROM inserted
|
||
|
||
SELECT @MAX_SEQUENCE = ISNULL(MAX(SEQUENCE),0) FROM TBCW_PROF_REL_CONTROL WHERE @WINDOW_ID = @WINDOW_ID AND GUID <> @GUID
|
||
UPDATE TBCW_PROF_REL_CONTROL SET SEQUENCE = @MAX_SEQUENCE,REGEX = '^' + @AUTOMATION_ID + '$'
|
||
FROM INSERTED
|
||
WHERE TBCW_PROF_REL_CONTROL.GUID = INSERTED.GUID
|
||
END TRY
|
||
BEGIN CATCH
|
||
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
||
+ ' - ERROR-MESSAGE: '
|
||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||
END CATCH
|
||
GO
|
||
ALTER VIEW [dbo].[VWCW_PROFILE_REL_CONTROL] AS
|
||
SELECT DISTINCT TOP 100 PERCENT
|
||
T.GUID
|
||
,T1.USER_ID
|
||
,TP.PROC_NAME AS PROCESS_NAME
|
||
,T1.GUID AS PROFILE_ID
|
||
,T.AUTOMATION_ID
|
||
,T.FRAMEWORK_ID
|
||
,T.WINDOW_ID
|
||
,T.DESCRIPTION
|
||
,T.REGEX
|
||
,T.SEQUENCE
|
||
FROM
|
||
TBCW_PROF_REL_CONTROL T
|
||
,TBCW_PROF_REL_WINDOW TW
|
||
,TBCW_PROFILE_PROCESS TP
|
||
,VWCW_USER_PROFILE T1
|
||
WHERE
|
||
T.WINDOW_ID = TW.GUID AND
|
||
TW.PROCESS_ID = TP.GUID AND
|
||
TP.PROFILE_ID = T1.GUID
|
||
ORDER BY T.SEQUENCE
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRCW_DELETE_PROFILE](@pPROFILE_ID INT)
|
||
AS
|
||
BEGIN TRY
|
||
delete from TBCW_PROF_DATA_SEARCH where PROFILE_ID = @pPROFILE_ID
|
||
delete from TBCW_PROF_DOC_SEARCH where PROFILE_ID = @pPROFILE_ID
|
||
delete from TBCW_PROF_REL_CONTROL where WINDOW_ID IN (
|
||
select T.GUID from TBCW_PROF_REL_WINDOW T,TBCW_PROFILE_PROCESS T1 WHERE T.PROCESS_ID = T1.GUID AND T1.PROFILE_ID = @pPROFILE_ID)
|
||
delete from TBCW_PROF_REL_WINDOW where PROCESS_ID IN (
|
||
select T1.GUID from TBCW_PROFILE_PROCESS T1 WHERE T1.PROFILE_ID = @pPROFILE_ID)
|
||
delete from TBCW_PROFILE_PROCESS where PROFILE_ID = @pPROFILE_ID
|
||
|
||
delete from TBCW_USER_PROFILE where PROFILE_ID = @pPROFILE_ID
|
||
delete from TBCW_PROFILES where GUID = @pPROFILE_ID
|
||
END TRY
|
||
BEGIN CATCH
|
||
PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
|
||
+ ' - FEHLER-MESSAGE: '
|
||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||
END CATCH
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRCW_COPY_PROFILE](@pPROFILEID INT,@pADDEDWHO VARCHAR(100))
|
||
AS
|
||
DECLARE @NEW_PROFILE_ID INT
|
||
|
||
BEGIN
|
||
INSERT INTO [dbo].[TBCW_PROFILES]
|
||
([NAME]
|
||
,[COMMENT]
|
||
,[REGEX_EXPRESSION]
|
||
,[ADDED_WHO]
|
||
,[ACTIVE]
|
||
,[PROFILE_TYPE])
|
||
SELECT 'COPY_' + [NAME]
|
||
,[COMMENT]
|
||
,[REGEX_EXPRESSION]
|
||
,@pADDEDWHO
|
||
,0
|
||
,[PROFILE_TYPE] FROM TBCW_PROFILES WHERE GUID = @pPROFILEID;
|
||
|
||
SELECT @NEW_PROFILE_ID = MAX(GUID) FROM TBCW_PROFILES;
|
||
|
||
DECLARE @OLDPROCESSID INTEGER
|
||
DECLARE cursorProcesses2Copy CURSOR FOR
|
||
select GUID from TBCW_PROFILE_PROCESS where PROFILE_ID = @pPROFILEID
|
||
OPEN cursorProcesses2Copy
|
||
FETCH NEXT FROM cursorProcesses2Copy INTO @OLDPROCESSID
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
INSERT INTO [dbo].[TBCW_PROFILE_PROCESS]
|
||
([PROFILE_ID]
|
||
,[PROC_NAME]
|
||
,ADDED_WHO)
|
||
SELECT @NEW_PROFILE_ID
|
||
,[PROC_NAME],@pADDEDWHO FROM TBCW_PROFILE_PROCESS WHERE GUID = @OLDPROCESSID;
|
||
|
||
DECLARE @NEW_PROCESS_ID INTEGER
|
||
SELECT @NEW_PROCESS_ID = MAX(GUID) FROM TBCW_PROFILE_PROCESS;
|
||
|
||
--#### WINDOWS2Copy
|
||
DECLARE @OLD_WINDOWID INTEGER
|
||
DECLARE CursorWindows2Copy CURSOR FOR
|
||
select GUID from TBCW_PROF_REL_WINDOW where PROCESS_ID = @OLDPROCESSID ORDER BY SEQUENCE
|
||
OPEN CursorWindows2Copy
|
||
FETCH NEXT FROM CursorWindows2Copy INTO @OLD_WINDOWID
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
INSERT INTO [dbo].[TBCW_PROF_REL_WINDOW]
|
||
(PROCESS_ID
|
||
,REGEX
|
||
,SEQUENCE
|
||
,DESCRIPTION
|
||
,ADDED_WHO)
|
||
SELECT @NEW_PROCESS_ID
|
||
,[REGEX]
|
||
,[SEQUENCE]
|
||
,[DESCRIPTION]
|
||
,@pADDEDWHO FROM TBCW_PROF_REL_WINDOW WHERE PROCESS_ID = @OLDPROCESSID;
|
||
DECLARE @NEW_WINDOWID INTEGER
|
||
SELECT @NEW_WINDOWID = MAX(GUID) FROM TBCW_PROF_REL_WINDOW;
|
||
--#### CONTROLS2Copy
|
||
DECLARE @OLD_CONTROL_ID INTEGER
|
||
DECLARE CursorControls2Copy CURSOR FOR
|
||
select GUID from TBCW_PROF_REL_CONTROL where WINDOW_ID = @OLD_WINDOWID ORDER BY SEQUENCE
|
||
OPEN CursorControls2Copy
|
||
FETCH NEXT FROM CursorControls2Copy INTO @OLD_CONTROL_ID
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
INSERT INTO [dbo].[TBCW_PROF_REL_CONTROL]
|
||
(WINDOW_ID
|
||
,DESCRIPTION
|
||
,AUTOMATION_ID
|
||
,FRAMEWORK_ID
|
||
,REGEX
|
||
,SEQUENCE
|
||
,ADDED_WHO)
|
||
SELECT
|
||
@NEW_WINDOWID
|
||
,[DESCRIPTION]
|
||
,[AUTOMATION_ID]
|
||
,[FRAMEWORK_ID]
|
||
,[REGEX]
|
||
,[SEQUENCE]
|
||
,@pADDEDWHO FROM TBCW_PROF_REL_CONTROL WHERE WINDOW_ID = @OLD_WINDOWID ;
|
||
|
||
FETCH NEXT FROM CursorControls2Copy INTO @OLD_CONTROL_ID
|
||
END
|
||
CLOSE CursorControls2Copy
|
||
DEALLOCATE CursorControls2Copy
|
||
--#### END CONTROLS2Copy
|
||
FETCH NEXT FROM CursorWindows2Copy INTO @OLD_WINDOWID
|
||
END
|
||
CLOSE CursorWindows2Copy
|
||
DEALLOCATE CursorWindows2Copy
|
||
--#### END WINDOWS2Copy
|
||
FETCH NEXT FROM cursorProcesses2Copy INTO @OLDPROCESSID
|
||
END
|
||
CLOSE cursorProcesses2Copy
|
||
DEALLOCATE cursorProcesses2Copy
|
||
|
||
INSERT INTO [dbo].[TBCW_PROF_DATA_SEARCH]
|
||
([PROFILE_ID]
|
||
,[CONN_ID]
|
||
,[SQL_COMMAND]
|
||
,[TAB_INDEX]
|
||
,[ACTIVE]
|
||
,[TAB_TITLE]
|
||
,[ADDED_WHO]
|
||
,COUNT_COMMAND)
|
||
SELECT @NEW_PROFILE_ID
|
||
,[CONN_ID]
|
||
,[SQL_COMMAND]
|
||
,[TAB_INDEX]
|
||
,[ACTIVE]
|
||
,[TAB_TITLE]
|
||
,@pADDEDWHO
|
||
,[COUNT_COMMAND] FROM TBCW_PROF_DATA_SEARCH WHERE PROFILE_ID = @pPROFILEID ORDER BY [TAB_INDEX];
|
||
|
||
INSERT INTO [dbo].[TBCW_PROF_DOC_SEARCH]
|
||
([PROFILE_ID]
|
||
,[CONN_ID]
|
||
,[SQL_COMMAND]
|
||
,[TAB_INDEX]
|
||
,[ACTIVE]
|
||
,[TAB_TITLE]
|
||
,[ADDED_WHO]
|
||
,[COUNT_COMMAND])
|
||
SELECT @NEW_PROFILE_ID
|
||
,[CONN_ID]
|
||
,[SQL_COMMAND]
|
||
,[TAB_INDEX]
|
||
,[ACTIVE]
|
||
,[TAB_TITLE]
|
||
,@pADDEDWHO
|
||
,[COUNT_COMMAND] FROM TBCW_PROF_DOC_SEARCH WHERE PROFILE_ID = @pPROFILEID ORDER BY [TAB_INDEX];
|
||
|
||
END
|
||
|
||
|
||
GO
|
||
ALTER VIEW [dbo].[VWCW_USER_PROFILE] AS
|
||
SELECT DISTINCT
|
||
T.GUID,
|
||
T.NAME,
|
||
T.REGEX_EXPRESSION,
|
||
T.COMMENT,
|
||
T.ACTIVE,
|
||
T.PROFILE_TYPE,
|
||
T2.PROC_NAME,
|
||
T1.USER_ID,
|
||
T3.GROUP_ID
|
||
FROM TBCW_PROFILES T
|
||
LEFT JOIN TBCW_USER_PROFILE T1 ON T.GUID = T1.PROFILE_ID
|
||
LEFT JOIN TBCW_PROFILE_PROCESS T2 ON T.GUID = T2.PROFILE_ID
|
||
LEFT JOIN TBCW_GROUP_PROFILE T3 ON T.GUID = T3.PROFILE_ID
|
||
WHERE T.ACTIVE = 1
|
||
GO
|
||
|
||
|