Alle Updates in MainCreateScripts integriert
This commit is contained in:
43
01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Hilfe/Split;durchführen.sql
Normal file
43
01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Hilfe/Split;durchführen.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
BEGIN
|
||||
DECLARE
|
||||
@GUID INTEGER,
|
||||
@CONTROL_ID INTEGER,
|
||||
@RECORD_ID INTEGER,
|
||||
@VALUE VARCHAR(MAX),
|
||||
@NEW_VALUE VARCHAR(MAX),
|
||||
@INDEX INTEGER,
|
||||
@ADDED_WHO VARCHAR(50)
|
||||
|
||||
DECLARE c_Values CURSOR FOR
|
||||
SELECT GUID,CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO FROM TBPMO_CONTROL_VALUE WHERE VALUE LIKE '%;%' AND CONTROL_ID NOT IN (SELECT GUID FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 2) ORDER BY RECORD_ID,CONTROL_ID
|
||||
OPEN c_Values
|
||||
FETCH NEXT FROM c_Values INTO @GUID,@CONTROL_ID,@RECORD_ID,@VALUE,@ADDED_WHO
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
SET @INDEX = 0
|
||||
--#####
|
||||
DECLARE c_NEWVALUES CURSOR FOR
|
||||
SELECT Item FROM dbo.FN_SPLIT_STRING(@VALUE, ';')
|
||||
OPEN c_NEWVALUES
|
||||
FETCH NEXT FROM c_NEWVALUES INTO @NEW_VALUE
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
SET @NEW_VALUE = LTRIM(@NEW_VALUE)
|
||||
IF @INDEX = 0
|
||||
UPDATE TBPMO_CONTROL_VALUE SET VALUE = @NEW_VALUE WHERE GUID = @GUID
|
||||
ELSE
|
||||
INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES
|
||||
(@CONTROL_ID,@RECORD_ID,@NEW_VALUE,@ADDED_WHO)
|
||||
PRINT CONVERT(VARCHAR(5),@CONTROL_ID) + '#' + CONVERT(VARCHAR(5),@INDEX) + '-' + @NEW_VALUE
|
||||
SET @INDEX = @INDEX + 1
|
||||
FETCH NEXT FROM c_NEWVALUES INTO @NEW_VALUE
|
||||
END
|
||||
CLOSE c_NEWVALUES
|
||||
DEALLOCATE c_NEWVALUES
|
||||
--#####
|
||||
FETCH NEXT FROM c_Values INTO @GUID,@CONTROL_ID,@RECORD_ID,@VALUE,@ADDED_WHO
|
||||
END
|
||||
CLOSE c_Values
|
||||
DEALLOCATE c_Values
|
||||
END
|
||||
@@ -0,0 +1,43 @@
|
||||
BEGIN
|
||||
DECLARE
|
||||
@CONTROL_ID INTEGER,
|
||||
@RECORD_ID INTEGER,
|
||||
@ACT_RECORD_ID INTEGER,
|
||||
@VALUE VARCHAR(MAX),
|
||||
@NEW_VALUE VARCHAR(MAX),
|
||||
@INDEX INTEGER
|
||||
|
||||
DECLARE c_Control_Values CURSOR FOR
|
||||
select CONTROL_ID,RECORD_ID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID IN (SELECT GUID FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 2) GROUP BY CONTROL_ID,RECORD_ID HAVING COUNT(GUID) > 1 ORDER BY RECORD_ID
|
||||
OPEN c_Control_Values
|
||||
FETCH NEXT FROM c_Control_Values INTO @CONTROL_ID, @RECORD_ID
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
PRINT 'RECORD: ' + CONVERT(VARCHAR(10),@RECORD_ID)
|
||||
SET @NEW_VALUE = ''
|
||||
SET @INDEX = 0
|
||||
DECLARE c_ROWVALUES CURSOR FOR
|
||||
SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @RECORD_ID
|
||||
OPEN c_ROWVALUES
|
||||
FETCH NEXT FROM c_ROWVALUES INTO @VALUE
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
IF @INDEX = 0
|
||||
SET @NEW_VALUE = @VALUE
|
||||
ELSE
|
||||
SET @NEW_VALUE += ';' + @VALUE
|
||||
SET @INDEX += 1
|
||||
FETCH NEXT FROM c_ROWVALUES INTO @VALUE
|
||||
END
|
||||
PRINT 'JETZT DAS UPDATE UND DELETE FÜR RECORD: ' + CONVERT(VARCHAR(10),@RECORD_ID)
|
||||
PRINT '@NEW_VALUE: ' + CONVERT(VARCHAR(500),@NEW_VALUE)
|
||||
DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID
|
||||
INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE) VALUES (@CONTROL_ID,@RECORD_ID,@NEW_VALUE)
|
||||
CLOSE c_ROWVALUES
|
||||
DEALLOCATE c_ROWVALUES
|
||||
|
||||
FETCH NEXT FROM c_Control_Values INTO @CONTROL_ID, @RECORD_ID
|
||||
END
|
||||
CLOSE c_Control_Values
|
||||
DEALLOCATE c_Control_Values
|
||||
END
|
||||
Reference in New Issue
Block a user