308 lines
11 KiB
Transact-SQL
308 lines
11 KiB
Transact-SQL
UPDATE TBIDB_BASE SET CONFIG_VALUE = '1.0.3' where CONFIG_NAME = 'DB_VERSION'
|
|
|
|
CREATE NONCLUSTERED INDEX IDX_GUID_TEXTTEM_ID
|
|
ON [dbo].[TBIDB_TERM_LANGUAGE] ([LANGUAGE_ID])
|
|
INCLUDE ([GUID],[TEXT_TERM_ID])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN
|
|
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([CHANGED_WHEN])
|
|
INCLUDE ([GUID])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN_IDBOBJID
|
|
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([IDB_OBJ_ID])
|
|
INCLUDE ([CHANGED_WHEN])
|
|
GO
|
|
ALTER PROCEDURE [dbo].[PRIDB_NEW_OBJ_DATA] @IDB_OBJ_ID BIGINT,@ATTRIBUTE VARCHAR(100),@WHO VARCHAR(100), @TERM_VAL VARCHAR(MAX),
|
|
@LANG_CODE VARCHAR(5) = 'de-DE', @FOREIGN_KEY BIGINT = 0, @OMD_ID BIGINT OUTPUT
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@ATTR_ID INTEGER,
|
|
@TYP_ID TINYINT,
|
|
@TYP_DESCR VARCHAR(100),
|
|
@MULTI BIT,
|
|
@LANG_ID INT
|
|
--PRINT '@FOREIGN_KEY: ' + CONVERT(VARCHAR(50),@FOREIGN_KEY)
|
|
IF @FOREIGN_KEY <> 0 AND @IDB_OBJ_ID <> @FOREIGN_KEY
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_KEY)
|
|
BEGIN
|
|
PRINT 'FOUND NO IDB-OBJECT FOR REFERENCE KEY: ' + CONVERT(VARCHAR(50),@FOREIGN_KEY)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @IDB_OBJ_ID = IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_KEY
|
|
--Print 'PRIDB_NEW_OBJ_DATA: Checked the DocID as Reference: ' + Convert(Varchar(10),@IDB_OBJ_ID)
|
|
END
|
|
|
|
END
|
|
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_ATTRIBUTE WHERE UPPER(TITLE) = UPPER(@ATTRIBUTE))
|
|
RAISERROR ('NO VALID ATTRIBUTE',16,1)
|
|
|
|
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
|
|
WHERE T.TYP_ID = T1.GUID AND UPPER(T.TITLE) = UPPER(@ATTRIBUTE)
|
|
|
|
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @LANG_CODE
|
|
|
|
DECLARE @MY_TERM_ID BIGINT
|
|
EXEC PRIDB_NEW_TERM @TYP_DESCR,@TERM_VAL,@WHO,@TERM_ID = @MY_TERM_ID OUTPUT;
|
|
--PRINT 'PRIDB_NEW_OBJ_DATA: @TYP_ID is: ' + Convert(Varchar(10),@TYP_ID)
|
|
IF @TYP_ID IN (1,8) --VARCHAR
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MY_TERM_ID)
|
|
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@MY_TERM_ID,@WHO)
|
|
|
|
SELECT @MY_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MY_TERM_ID
|
|
|
|
IF @TYP_ID = 1 --Single Varchar
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[TEXT_TERM_LANG_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
|
|
ELSE
|
|
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [TEXT_TERM_LANG_ID] <> @MY_TERM_ID)
|
|
UPDATE TBIDB_OBJECT_METADATA SET [TEXT_TERM_LANG_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
|
|
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [TEXT_TERM_LANG_ID] = @MY_TERM_ID
|
|
END
|
|
ELSE
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [TEXT_TERM_LANG_ID] = @MY_TERM_ID)
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[TEXT_TERM_LANG_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
--ELSE
|
|
--PRINT 'IDB-METADATAOBJECT-VALUE SEEMS TO EXIST: @IDB_OBJ_ID: ' + Convert(Varchar(10),@IDB_OBJ_ID)
|
|
|
|
END
|
|
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
|
|
BEGIN
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[INT_TERM_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
END
|
|
ELSE
|
|
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [INT_TERM_ID] <> @MY_TERM_ID)
|
|
UPDATE TBIDB_OBJECT_METADATA SET [INT_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
|
|
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND INT_TERM_ID = @MY_TERM_ID
|
|
END
|
|
ELSE IF @TYP_ID = 3 --FLOAT
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
|
|
BEGIN
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[FLOAT_TERM_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
END
|
|
ELSE
|
|
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [FLOAT_TERM_ID] <> @MY_TERM_ID)
|
|
UPDATE TBIDB_OBJECT_METADATA SET [FLOAT_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
|
|
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND FLOAT_TERM_ID = @MY_TERM_ID
|
|
END
|
|
ELSE IF @TYP_ID = 4 --DECIMAL
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
|
|
BEGIN
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[DEC_TERM_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
END
|
|
ELSE
|
|
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID <> @MY_TERM_ID)
|
|
UPDATE TBIDB_OBJECT_METADATA SET [DEC_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
|
|
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID = @MY_TERM_ID
|
|
END
|
|
ELSE IF @TYP_ID = 5 --DATE
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
|
|
BEGIN
|
|
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
|
|
([IDB_OBJ_ID]
|
|
,[ATTR_ID]
|
|
,[DATE_TERM_ID]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@ATTR_ID
|
|
,@MY_TERM_ID
|
|
,@WHO)
|
|
END
|
|
ELSE
|
|
UPDATE TBIDB_OBJECT_METADATA SET [DATE_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
|
|
|
|
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID
|
|
END
|
|
--PRINT 'PRIDB_NEW_OBJ_DATA - Got the new @OMD_ID: ' + CONVERT(VARCHAR(20),@OMD_ID)
|
|
END
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Author: DD MS
|
|
-- Change date: 10.08.2020 MS Anpassung
|
|
-- =============================================
|
|
ALTER PROCEDURE [dbo].[PRIDB_NEW_DOCUMENT] @OBJ_ST_ID INT, @REL_PATH VARCHAR(512),@WHO VARCHAR(100), @REF_DOCID BIGINT = 0, @BE VARCHAR(500) = '', @IDB_OBJ_ID BIGINT OUTPUT
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@SHARE_PATH VARCHAR(100),
|
|
@OBJ_STORE_PATH VARCHAR(250),
|
|
@NEW_FULL_PATH VARCHAR(512),
|
|
@FILENAME_EXT VARCHAR(250),
|
|
@FILENAME_ONLY VARCHAR(250),
|
|
@RELATIVE_PATH VARCHAR(512),
|
|
@RELATIVE_PATH_ONLY VARCHAR(512),
|
|
@EXT VARCHAR(10)
|
|
|
|
SELECT
|
|
@SHARE_PATH = T.CAT_STRING, @OBJ_STORE_PATH = T1.OBJ_PATH
|
|
FROM TBIDB_CATALOG T, TBIDB_OBJECT_STORE T1 WHERE T1.CAT_ID = T.GUID AND T1.GUID = @OBJ_ST_ID
|
|
SET @NEW_FULL_PATH = UPPER(@SHARE_PATH + '\' + @OBJ_STORE_PATH + '\' + @REL_PATH)
|
|
SET @NEW_FULL_PATH = REPLACE(@NEW_FULL_PATH,'\\','')
|
|
SET @RELATIVE_PATH = UPPER(@REL_PATH)
|
|
PRINT 'PRIDB_NEW_DOCUMENT - @NEW_FULL_PATH: ' + @NEW_FULL_PATH
|
|
PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH: ' + @RELATIVE_PATH
|
|
|
|
--SELECT @RELATIVE_PATH_ONLY = [dbo].[FNGetDirectoryPath] (@NEW_FULL_PATH);
|
|
--PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH_ONLY1: ' + @RELATIVE_PATH_ONLY
|
|
|
|
SELECT @FILENAME_EXT = [dbo].[FNGetFileName] (@NEW_FULL_PATH);
|
|
SELECT @FILENAME_ONLY = [dbo].[FNGetFileNameWithoutExtension] (@NEW_FULL_PATH);
|
|
SELECT @EXT = UPPER([dbo].[FNGetExtension] (@NEW_FULL_PATH));
|
|
SET @RELATIVE_PATH_ONLY = REPLACE(@REL_PATH,'\' + @FILENAME_EXT,'')
|
|
PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH_ONLY: ' + @RELATIVE_PATH_ONLY
|
|
--PRINT '@EXT: ' + @EXT
|
|
--IF NOT EXISTS(SELECT [IDB_OBJ_ID] FROM [TBIDB_DOC_INFO] WHERE [OBJ_ST_ID] = @OBJ_ST_ID AND UPPER([RELATIVE_PATH]) = @RELATIVE_PATH)
|
|
EXEC PRIDB_NEW_OBJECT 'DOC',@WHO,@BE,@REF_DOCID, @IDB_OBJ_ID = @IDB_OBJ_ID OUTPUT;
|
|
PRINT 'PRIDB_NEW_DOCUMENT - @IDB_OBJ_ID from PRIDB_NEW_OBJECT: ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID)
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM [TBIDB_DOC_INFO] WHERE IDB_OBJ_ID = @IDB_OBJ_ID)
|
|
INSERT INTO [dbo].[TBIDB_DOC_INFO]
|
|
([IDB_OBJ_ID]
|
|
,[OBJ_ST_ID]
|
|
,[FILENAME_EXT]
|
|
,[FILENAME_ONLY]
|
|
,EXTENSION
|
|
,[RELATIVE_PATH]
|
|
,[RELATIVE_PATH_ONLY]
|
|
,[ADDED_WHO])
|
|
VALUES
|
|
(@IDB_OBJ_ID
|
|
,@OBJ_ST_ID
|
|
,@FILENAME_EXT
|
|
,@FILENAME_ONLY
|
|
,@EXT
|
|
,@RELATIVE_PATH
|
|
,@RELATIVE_PATH_ONLY
|
|
,@WHO)
|
|
ELSE
|
|
BEGIN
|
|
PRINT 'OBJECT ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) + ' ALREADY EXISTING ---- So ONLY UPDATE WITH NEW FILE PARAMS'
|
|
UPDATE [TBIDB_DOC_INFO] SET [FILENAME_EXT] = @FILENAME_EXT,[FILENAME_ONLY] = @FILENAME_ONLY
|
|
,EXTENSION = @EXT
|
|
,[RELATIVE_PATH] = @RELATIVE_PATH
|
|
,[RELATIVE_PATH_ONLY] = @RELATIVE_PATH_ONLY
|
|
,CHANGED_WHO = @WHO
|
|
WHERE IDB_OBJ_ID = @IDB_OBJ_ID
|
|
IF EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_OBJECT WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND DELETED = 1)
|
|
BEGIN
|
|
PRINT 'PRIDB_NEW_DOCUMENT - IDB_OBJ_ID: ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) + ' DELETED FLAG ACTIVE!!'
|
|
UPDATE TBIDB_OBJECT SET DELETED = 0 WHERE IDB_OBJ_ID = @IDB_OBJ_ID
|
|
END
|
|
END
|
|
END
|
|
END
|
|
GO
|
|
ALTER PROCEDURE PRIDB_GET_VALUE_TYPE @pVALUE VARCHAR(900)--,@oType VARCHAR(10) OUTPUT
|
|
AS
|
|
BEGIN
|
|
declare @TBTYPE_RESULT table(pTYPE varchar(10))
|
|
DECLARE @oTYPE as Varchar(10)
|
|
SET @oType = 'NONE'
|
|
DECLARE @BIGINT as BIGINT, @FLOAT FLOAT,@DECIMAL DECIMAL(19,2),@DATE DATE
|
|
BEGIN TRY
|
|
SET @BIGINT = CONVERT(bigint,@pVALUE)
|
|
SET @oType = 'BIGINT'
|
|
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'NO BIGINT'
|
|
END CATCH
|
|
--IF @oType = 'NONE'
|
|
BEGIN TRY
|
|
SET @FLOAT = CONVERT(FLOAT,@pVALUE)
|
|
SET @oType = 'FLOAT'
|
|
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'NO FLOAT'
|
|
END CATCH
|
|
--IF @oType = 'NONE'
|
|
BEGIN TRY
|
|
SET @DECIMAL = CONVERT(DECIMAL(19,2),@pVALUE)
|
|
SET @oType = 'DECIMAL'
|
|
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'NO DECIMAL'
|
|
END CATCH
|
|
--IF @oType = 'NONE'
|
|
BEGIN TRY
|
|
SET @DATE = CONVERT(DATE,@pVALUE)
|
|
SET @oType = 'DATE'
|
|
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'NO DATE'
|
|
END CATCH
|
|
--IF @oType = 'NONE'
|
|
BEGIN TRY
|
|
SET @oType = 'VARCHAR'
|
|
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'NO VARCHAR'
|
|
END CATCH
|
|
PRINT '@TYPE: ' + @oType
|
|
SELECT * FROM @TBTYPE_RESULT
|
|
END
|
|
|
|
|