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