8
0

FNDD_GET_WINDREAM_INDEX_VALUES: Added DocID, concat results in new [VALUES] row, Added parameter to show the whole BaseAttributes table, Added parameter for debugging vector handling

This commit is contained in:
KammM 2025-06-06 16:59:19 +02:00
parent 0cb484db3a
commit 7e0de876ec

View File

@ -8,45 +8,239 @@ GO
-- Reads the windream database attributes to gives the index value
-- of a regular index or a vector index
--
-- Returns: Table (7 columns)
-- Returns: Table
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 13.12.2024 / MK
-- Version Date / Editor: 13.12.2024 / MK
-- Version Number: 1.0.0.0
-- Version Date / Editor: 04.04.2025 / MK
-- Version Number: 2.2.0.0
-- =================================================================
-- History:
-- 13.12.2024 / MK - First Version
-- 02.04.2025 / MK - Added DocID, concat results in new [VALUES] row
-- 03.04.2025 / MK - Added parameter to show the whole BaseAttributes table
-- 04.04.2025 / MK - Added parameter for debugging vector handling
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES] (
@pdwDocID BIGINT, -- Give windream DocID, eg. 4711
@pszAttrName NVARCHAR(255) -- Give name of the windream Index, eg 'String 37'
@pdwDocID BIGINT, -- Give windream DocID, eg. 4711
@pszAttrName NVARCHAR(255), -- Give name of the windream Index, eg 'String 37' or 'Vektor String 100'
@pSeperator NVARCHAR(5), -- Give the data seperator for the [VALUES] return, eg '; '
@pShowWDBA BIT, -- Set to 1 to get the whole BaseAttributes table (USE ONLY IF NECCESSARY, BECAUSE OF HIGHER MEMORY USAGE), DEFAULT SET 0.
@pDEBUG BIT -- Set to 1 to get vector retrieving infos in result table, DEFAULT SET 0!
)
RETURNS @Table TABLE ([COUNTER] BIGINT IDENTITY(1, 1), [COUNT] BIGINT, [VALUE] NVARCHAR(max), [SOURCE_TYPE] NVARCHAR(50), [SOURCE_TABLE] NVARCHAR(50), [SOURCE_COLUMN] NVARCHAR(50), [SOURCE_COLUMN_SIZE] INT)
RETURNS @RESULT TABLE ( [COUNTER] BIGINT IDENTITY(1,1) NOT NULL,
[COUNT] BIGINT NOT NULL,
[DOCID] BIGINT NULL,
[VALUE] NVARCHAR(4000) NULL,
[VALUES] NVARCHAR(max) NULL,
[SOURCE_TYPE] NVARCHAR(50) NULL,
[SOURCE_TABLE] NVARCHAR(50) NULL,
[SOURCE_COLUMN] NVARCHAR(50) NULL,
[SOURCE_COLUMN_SIZE] INT NULL,
[WDBA_dwDocID] BIGINT NULL,
[WDBA_dwDocDBID] INT NULL,
[WDBA_dwObjectTypeID] BIGINT NULL,
[WDBA_dwObjectTypeDBID] INT NULL,
[WDBA_dwCatalogID] INT NULL,
[WDBA_dwParentID] BIGINT NULL,
[WDBA_dwParentDBID] INT NULL,
[WDBA_dwCreatorID] BIGINT NULL,
[WDBA_szCreatorName] NVARCHAR(255) NULL,
[WDBA_dwVersionNumber] INT NULL,
[WDBA_dwVersionID] BIGINT NULL,
[WDBA_szLongName] NVARCHAR(255) NULL,
[WDBA_szUpperLongName] NVARCHAR(255) NULL,
[WDBA_szShortName] NVARCHAR(12) NULL,
[WDBA_szUpperShortName] NVARCHAR(12) NULL,
[WDBA_dwSize] BIGINT NULL,
[WDBA_decCreationTime] DECIMAL(14, 0) NULL,
[WDBA_decAccessTime] DECIMAL(14, 0) NULL,
[WDBA_decChangedTime] DECIMAL(14, 0) NULL,
[WDBA_dwChangeCount] INT NULL,
[WDBA_dwFSFlags] INT NULL,
[WDBA_dwFlags] INT NULL,
[WDBA_dwOwnerID] BIGINT NULL,
[WDBA_dwOwnerDBID] INT NULL,
[WDBA_dwWorkLockUserID] BIGINT NULL,
[WDBA_dwWorkLockUserDBID] INT NULL,
[WDBA_dwFlags2] INT NULL,
[WDBA_dwUserFlags] INT NULL,
[WDBA_dwEditDate] INT NULL,
[WDBA_dwArchiveDate] INT NULL,
[WDBA_szReference] NVARCHAR(255) NULL,
[WDBA_dwEditPeriod] INT NULL,
[WDBA_dwArchivePeriod] INT NULL,
[WDBA_dwTypeAssignDate] INT NULL,
[WDBA_dwChangeDate] INT NULL,
[WDBA_dwCreationDate] INT NULL,
[WDBA_dwCreation_Time] INT NULL,
[WDBA_dwChange_Time] INT NULL,
[WDBA_dwTypeAssign_Time] INT NULL,
[WDBA_dwAccessListID] BIGINT NULL,
[WDBA_dwAccessListDBID] INT NULL,
[WDBA_szDisplay_Name] NVARCHAR(512) NULL,
[WDBA_dwILMRetention] INT NULL,
[WDBA_szFile_Ext] NVARCHAR(255) NULL,
[WDBA_szWM_Store] NVARCHAR(255) NULL,
[WDBA_szText00] NVARCHAR(4000) NULL,
[WDBA_szText01] NVARCHAR(4000) NULL,
[WDBA_szText02] NVARCHAR(4000) NULL,
[WDBA_szText03] NVARCHAR(4000) NULL,
[WDBA_szText04] NVARCHAR(4000) NULL,
[WDBA_szText05] NVARCHAR(4000) NULL,
[WDBA_szText06] NVARCHAR(4000) NULL,
[WDBA_szText07] NVARCHAR(4000) NULL,
[WDBA_szText08] NVARCHAR(4000) NULL,
[WDBA_szText09] NVARCHAR(4000) NULL,
[WDBA_szText10] NVARCHAR(4000) NULL,
[WDBA_szText11] NVARCHAR(4000) NULL,
[WDBA_szText12] NVARCHAR(4000) NULL,
[WDBA_szText13] NVARCHAR(4000) NULL,
[WDBA_szText14] NVARCHAR(4000) NULL,
[WDBA_szText15] NVARCHAR(4000) NULL,
[WDBA_szText16] NVARCHAR(4000) NULL,
[WDBA_szText17] NVARCHAR(4000) NULL,
[WDBA_szText18] NVARCHAR(4000) NULL,
[WDBA_szText19] NVARCHAR(4000) NULL,
[WDBA_szText20] NVARCHAR(4000) NULL,
[WDBA_szText21] NVARCHAR(4000) NULL,
[WDBA_szText22] NVARCHAR(4000) NULL,
[WDBA_szText23] NVARCHAR(4000) NULL,
[WDBA_szText24] NVARCHAR(4000) NULL,
[WDBA_szText25] NVARCHAR(4000) NULL,
[WDBA_szText26] NVARCHAR(4000) NULL,
[WDBA_szText27] NVARCHAR(4000) NULL,
[WDBA_szText28] NVARCHAR(4000) NULL,
[WDBA_szText29] NVARCHAR(4000) NULL,
[WDBA_szText30] NVARCHAR(4000) NULL,
[WDBA_szText31] NVARCHAR(4000) NULL,
[WDBA_szText32] NVARCHAR(4000) NULL,
[WDBA_szText33] NVARCHAR(4000) NULL,
[WDBA_szText34] NVARCHAR(4000) NULL,
[WDBA_szText35] NVARCHAR(4000) NULL,
[WDBA_szText36] NVARCHAR(4000) NULL,
[WDBA_szText37] NVARCHAR(4000) NULL,
[WDBA_szText38] NVARCHAR(4000) NULL,
[WDBA_szText39] NVARCHAR(4000) NULL,
[WDBA_dwInteger00] NVARCHAR(4000) NULL,
[WDBA_dwInteger01] NVARCHAR(4000) NULL,
[WDBA_dwInteger02] NVARCHAR(4000) NULL,
[WDBA_dwInteger03] NVARCHAR(4000) NULL,
[WDBA_dwInteger04] NVARCHAR(4000) NULL,
[WDBA_dwInteger05] NVARCHAR(4000) NULL,
[WDBA_dwInteger06] NVARCHAR(4000) NULL,
[WDBA_dwInteger07] NVARCHAR(4000) NULL,
[WDBA_dwInteger08] NVARCHAR(4000) NULL,
[WDBA_dwInteger09] NVARCHAR(4000) NULL,
[WDBA_dwInteger10] NVARCHAR(4000) NULL,
[WDBA_dwInteger11] NVARCHAR(4000) NULL,
[WDBA_dwInteger12] NVARCHAR(4000) NULL,
[WDBA_dwInteger13] NVARCHAR(4000) NULL,
[WDBA_dwInteger14] NVARCHAR(4000) NULL,
[WDBA_dwInteger15] NVARCHAR(4000) NULL,
[WDBA_dwInteger16] NVARCHAR(4000) NULL,
[WDBA_dwInteger17] NVARCHAR(4000) NULL,
[WDBA_dwInteger18] NVARCHAR(4000) NULL,
[WDBA_dwInteger19] NVARCHAR(4000) NULL,
[WDBA_dwInteger20] NVARCHAR(4000) NULL,
[WDBA_dwInteger21] NVARCHAR(4000) NULL,
[WDBA_dwInteger22] NVARCHAR(4000) NULL,
[WDBA_dwInteger23] NVARCHAR(4000) NULL,
[WDBA_dwInteger24] NVARCHAR(4000) NULL,
[WDBA_lfFloat00] NVARCHAR(4000) NULL,
[WDBA_lfFloat01] NVARCHAR(4000) NULL,
[WDBA_lfFloat02] NVARCHAR(4000) NULL,
[WDBA_lfFloat03] NVARCHAR(4000) NULL,
[WDBA_lfFloat04] NVARCHAR(4000) NULL,
[WDBA_lfFloat05] NVARCHAR(4000) NULL,
[WDBA_lfFloat06] NVARCHAR(4000) NULL,
[WDBA_lfFloat07] NVARCHAR(4000) NULL,
[WDBA_lfFloat08] NVARCHAR(4000) NULL,
[WDBA_lfFloat09] NVARCHAR(4000) NULL,
[WDBA_lfFloat10] NVARCHAR(4000) NULL,
[WDBA_lfFloat11] NVARCHAR(4000) NULL,
[WDBA_lfFloat12] NVARCHAR(4000) NULL,
[WDBA_lfFloat13] NVARCHAR(4000) NULL,
[WDBA_lfFloat14] NVARCHAR(4000) NULL,
[WDBA_blBool00] NVARCHAR(4000) NULL,
[WDBA_blBool01] NVARCHAR(4000) NULL,
[WDBA_blBool02] NVARCHAR(4000) NULL,
[WDBA_blBool03] NVARCHAR(4000) NULL,
[WDBA_blBool04] NVARCHAR(4000) NULL,
[WDBA_dwDate00] NVARCHAR(4000) NULL,
[WDBA_dwDate01] NVARCHAR(4000) NULL,
[WDBA_dwDate02] NVARCHAR(4000) NULL,
[WDBA_dwDate03] NVARCHAR(4000) NULL,
[WDBA_dwDate04] NVARCHAR(4000) NULL,
[WDBA_dwDate05] NVARCHAR(4000) NULL,
[WDBA_dwDate06] NVARCHAR(4000) NULL,
[WDBA_dwDate07] NVARCHAR(4000) NULL,
[WDBA_dwDate08] NVARCHAR(4000) NULL,
[WDBA_dwDate09] NVARCHAR(4000) NULL,
[WDBA_decTimeStamp00] NVARCHAR(4000) NULL,
[WDBA_decTimeStamp01] NVARCHAR(4000) NULL,
[WDBA_decCurrency00] NVARCHAR(4000) NULL,
[WDBA_wmVar00] NVARCHAR(4000) NULL,
[WDBA_wmVar01] NVARCHAR(4000) NULL,
[WDBA_wmVar02] NVARCHAR(4000) NULL,
[WDBA_wmVar03] NVARCHAR(4000) NULL,
[WDBA_wmVar04] NVARCHAR(4000) NULL,
[WDBA_wmVar05] NVARCHAR(4000) NULL,
[WDBA_wmVar06] NVARCHAR(4000) NULL,
[WDBA_wmVar07] NVARCHAR(4000) NULL,
[WDBA_wmVar08] NVARCHAR(4000) NULL,
[WDBA_wmVar09] NVARCHAR(4000) NULL,
[WDBA_wmVar10] NVARCHAR(4000) NULL,
[WDBA_wmVar11] NVARCHAR(4000) NULL,
[WDBA_wmVar12] NVARCHAR(4000) NULL,
[WDBA_wmVar13] NVARCHAR(4000) NULL,
[WDBA_wmVar14] NVARCHAR(4000) NULL,
[WDBA_wmVar15] NVARCHAR(4000) NULL,
[WDBA_wmVar16] NVARCHAR(4000) NULL,
[WDBA_wmVar17] NVARCHAR(4000) NULL,
[WDBA_wmVar18] NVARCHAR(4000) NULL,
[WDBA_wmVar19] NVARCHAR(4000) NULL,
[WDBA_wmVar20] NVARCHAR(4000) NULL,
[WDBA_wmVar21] NVARCHAR(4000) NULL,
[WDBA_wmVar22] NVARCHAR(4000) NULL,
[WDBA_wmVar23] NVARCHAR(4000) NULL,
[WDBA_wmVar24] NVARCHAR(4000) NULL,
[WDBA_wmVar25] NVARCHAR(4000) NULL,
[WDBA_wmVar26] NVARCHAR(4000) NULL,
[WDBA_wmVar27] NVARCHAR(4000) NULL,
[WDBA_wmVar28] NVARCHAR(4000) NULL,
[WDBA_wmVar29] NVARCHAR(4000) NULL)
AS
BEGIN
DECLARE @dwDocID BIGINT = @pdwDocID,
@szAttrName NVARCHAR(255) = @pszAttrName;
DECLARE @dwDocID BIGINT = @pdwDocID,
@szAttrName NVARCHAR(255) = @pszAttrName,
@Seperator NVARCHAR(5) = @pSeperator,
@ShowWDBA BIT = @pShowWDBA,
@DEBUG BIT = @pDEBUG;
DECLARE @VectorCount INT = 0,
@dwAttrSize INT = 0,
@dwAttrID BIGINT = 0,
@dwAttrType BIGINT = 0,
@szTableName NVARCHAR(255) = NULL,
@szColumnName NVARCHAR(255) = NULL;
DECLARE @VectorCount INT = 0,
@dwAttrSize INT = 0,
@dwAttrID BIGINT = 0,
@dwAttrType BIGINT = 0,
@szTableName NVARCHAR(255) = NULL,
@szColumnName NVARCHAR(255) = NULL;
DECLARE @COUNTER BIGINT = 0,
@COUNT BIGINT = 0,
@VALUE NVARCHAR(4000) = NULL,
@VALUES NVARCHAR(MAX) = NULL;
DECLARE @Attribute TABLE ([dwAttrID] BIGINT, [dwAttrType] BIGINT, [szTableName] NVARCHAR(255), [szColumnName] NVARCHAR(255), [dwAttrSize] INT);
------------------------------------------------------------------------------------------------------------
INSERT INTO @Attribute ([dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize])
SELECT TOP 1 [dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize]
FROM [windreamDB].[dbo].[Attribute] (NOLOCK) WHERE [szAttrName] = @szAttrName;
FROM [windreamDB].[dbo].[Attribute] (NOLOCK) WHERE [szAttrName] = @szAttrName;
------------------------------------------------------------------------------------------------------------
IF ((SELECT COUNT(*) FROM @Attribute) > 0) BEGIN
@ -61,11 +255,12 @@ BEGIN
IF ((@dwAttrID > 0) and (@dwAttrType > 0) and (LEN(@szTableName) > 0) and (LEN(@szColumnName) > 0)) BEGIN
IF (@szTableName = 'BaseAttributes') BEGIN
IF (@szTableName = 'BaseAttributes') BEGIN -- Handle single fields
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT
COUNT(*),
@dwDocID,
CASE
WHEN @szColumnName = 'dwDocID' THEN (SELECT CONVERT(NVARCHAR,[dwDocID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDocDBID' THEN (SELECT CONVERT(NVARCHAR,[dwDocDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
@ -241,7 +436,8 @@ BEGIN
WHEN @szColumnName = 'wmVar29' THEN (SELECT CONVERT(NVARCHAR,[wmVar29]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwILMRetention' THEN (SELECT CONVERT(NVARCHAR,[dwILMRetention]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
ELSE NULL
END AS ColumnValue,
END AS 'VALUE',
NULL AS 'VALUES',
@dwAttrType,
@szTableName,
@szColumnName,
@ -250,7 +446,7 @@ BEGIN
WHERE [dwDocID] = @dwDocID;
------------------------------------------------------------------------------------------------------------
END; ELSE IF (@szTableName = 'Vector') BEGIN
END; ELSE IF (@szTableName = 'Vector') BEGIN -- Handle vector fields
SELECT @VectorCount = COUNT(*)
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
@ -258,74 +454,301 @@ BEGIN
AND [dwAttrID] = @dwAttrID;
IF (@dwAttrType in (4097)) BEGIN -- String
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [szValue], @dwAttrType, @szTableName, 'szValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [szValue];
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, [szValue], NULL, @dwAttrType, @szTableName, 'szValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [szValue], [dwRow]
ORDER BY [dwRow] ASC;
END; ELSE IF (@dwAttrType in (4098,4107)) BEGIN -- Integer
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [dwValue], @dwAttrType, @szTableName, 'dwValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [dwValue];
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, [dwValue], NULL, @dwAttrType, @szTableName, 'dwValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [dwValue], [dwRow]
ORDER BY [dwRow] ASC;
END; ELSE IF (@dwAttrType in (4099)) BEGIN -- Float
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [lfValue], @dwAttrType, @szTableName, 'lfValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [lfValue];
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, [lfValue], NULL, @dwAttrType, @szTableName, 'lfValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [lfValue], [dwRow]
ORDER BY [dwRow] ASC;
END; ELSE IF (@dwAttrType in (8,4100,8204)) BEGIN -- Bool
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [blValue], @dwAttrType, @szTableName, 'blValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [blValue];
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, [blValue], NULL, @dwAttrType, @szTableName, 'blValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [blValue], [dwRow]
ORDER BY [dwRow] ASC;
END; ELSE IF (@dwAttrType in (4101)) BEGIN -- Date
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [decValue], @dwAttrType, @szTableName, 'decValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [decValue];
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, [decValue], NULL, @dwAttrType, @szTableName, 'decValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [decValue], [dwRow]
ORDER BY [dwRow] ASC;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR5', 'COLUMN NOT FOUND', NULL;
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, 0, NULL, NULL, NULL, 'ERROR5', 'COLUMN NOT FOUND', NULL;
END;
-- Failsafe, to have at least one result
IF (SELECT COUNT(*) FROM @Table) = 0 BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR4', 'NO VALUE FOUND', NULL;
IF (@DEBUG = 1) BEGIN -- if debug mode is enabled
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, @dwDocID, NULL, NULL, 'DEBUG', concat('@szTableName: ',@szTableName), concat('@dwAttrType: ',@dwAttrType,'; ','@dwAttrID: ',@dwAttrID), 0;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR3', 'TABLE NOT FOUND', NULL;
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, 0, NULL, NULL, NULL, 'ERROR3', 'TABLE NOT FOUND', NULL;
END;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR2', 'TABLE NOT FOUND', NULL;
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, 0, NULL, NULL, NULL, 'ERROR2', 'TABLE NOT FOUND', NULL;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR1', 'INDEX NOT FOUND', NULL;
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, 0, NULL, NULL, NULL, 'ERROR1', 'INDEX NOT FOUND', NULL;
END;
------------------------------------------------------------------------------------------------------------
IF ((SELECT COUNT(*) FROM @RESULT) > 0) BEGIN -- Fill the VALUES row
DECLARE CURSOR_SET_VALUES_FROM_VALUE CURSOR
LOCAL FAST_FORWARD FOR
SELECT [COUNTER], [COUNT], [VALUE]
FROM @RESULT
ORDER BY [COUNTER] ASC;
OPEN CURSOR_SET_VALUES_FROM_VALUE
FETCH NEXT FROM CURSOR_SET_VALUES_FROM_VALUE INTO @COUNTER, @COUNT, @VALUE
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@COUNTER = 1) BEGIN
SET @VALUES = @VALUE;
UPDATE @RESULT
SET [VALUES] = @VALUES
WHERE [COUNTER] = @COUNTER;
END; ELSE IF ((@COUNTER > 1) AND (@COUNT > 1)) BEGIN
SET @VALUES = CONCAT(@VALUES,@Seperator,@VALUE);
UPDATE @RESULT
SET [VALUES] = @VALUES
WHERE [COUNTER] = @COUNTER;
END;
FETCH NEXT FROM CURSOR_SET_VALUES_FROM_VALUE INTO @COUNTER, @COUNT, @VALUE
END
CLOSE CURSOR_SET_VALUES_FROM_VALUE;
DEALLOCATE CURSOR_SET_VALUES_FROM_VALUE;
END; ELSE BEGIN -- Failsafe, to have at least one result
INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, 0, NULL, NULL, NULL, 'ERROR0', 'NO VALUE FOUND', NULL;
END;
------------------------------------------------------------------------------------------------------------
IF (((SELECT COUNT(*) FROM @RESULT) > 0) AND (@ShowWDBA = 1)) BEGIN
UPDATE @RESULT
SET [WDBA_dwDocID] = [dwDocID],
[WDBA_dwDocDBID] = [dwDocDBID],
[WDBA_dwObjectTypeID] = [dwObjectTypeID],
[WDBA_dwObjectTypeDBID] = [dwObjectTypeDBID],
[WDBA_dwCatalogID] = [dwCatalogID],
[WDBA_dwParentID] = [dwParentID],
[WDBA_dwParentDBID] = [dwParentDBID],
[WDBA_dwCreatorID] = [dwCreatorID],
[WDBA_szCreatorName] = [szCreatorName],
[WDBA_dwVersionNumber] = [dwVersionNumber],
[WDBA_dwVersionID] = [dwVersionID],
[WDBA_szLongName] = [szLongName],
[WDBA_szUpperLongName] = [szUpperLongName],
[WDBA_szShortName] = [szShortName],
[WDBA_szUpperShortName] = [szUpperShortName],
[WDBA_dwSize] = [dwSize],
[WDBA_decCreationTime] = [decCreationTime],
[WDBA_decAccessTime] = [decAccessTime],
[WDBA_decChangedTime] = [decChangedTime],
[WDBA_dwChangeCount] = [dwChangeCount],
[WDBA_dwFSFlags] = [dwFSFlags],
[WDBA_dwFlags] = [dwFlags],
[WDBA_dwOwnerID] = [dwOwnerID],
[WDBA_dwOwnerDBID] = [dwOwnerDBID],
[WDBA_dwWorkLockUserID] = [dwWorkLockUserID],
[WDBA_dwWorkLockUserDBID] = [dwWorkLockUserDBID],
[WDBA_dwFlags2] = [dwFlags2],
[WDBA_dwUserFlags] = [dwUserFlags],
[WDBA_dwEditDate] = [dwEditDate],
[WDBA_dwArchiveDate] = [dwArchiveDate],
[WDBA_szReference] = [szReference],
[WDBA_dwEditPeriod] = [dwEditPeriod],
[WDBA_dwArchivePeriod] = [dwArchivePeriod],
[WDBA_dwTypeAssignDate] = [dwTypeAssignDate],
[WDBA_dwChangeDate] = [dwChangeDate],
[WDBA_dwCreationDate] = [dwCreationDate],
[WDBA_dwCreation_Time] = [dwCreation_Time],
[WDBA_dwChange_Time] = [dwChange_Time],
[WDBA_dwTypeAssign_Time] = [dwTypeAssign_Time],
[WDBA_dwAccessListID] = [dwAccessListID],
[WDBA_dwAccessListDBID] = [dwAccessListDBID],
[WDBA_szDisplay_Name] = [szDisplay_Name],
[WDBA_dwILMRetention] = [dwILMRetention],
[WDBA_szFile_Ext] = [szFile_Ext],
[WDBA_szWM_Store] = [szWM_Store],
[WDBA_szText00] = [szText00],
[WDBA_szText01] = [szText01],
[WDBA_szText02] = [szText02],
[WDBA_szText03] = [szText03],
[WDBA_szText04] = [szText04],
[WDBA_szText05] = [szText05],
[WDBA_szText06] = [szText06],
[WDBA_szText07] = [szText07],
[WDBA_szText08] = [szText08],
[WDBA_szText09] = [szText09],
[WDBA_szText10] = [szText10],
[WDBA_szText11] = [szText11],
[WDBA_szText12] = [szText12],
[WDBA_szText13] = [szText13],
[WDBA_szText14] = [szText14],
[WDBA_szText15] = [szText15],
[WDBA_szText16] = [szText16],
[WDBA_szText17] = [szText17],
[WDBA_szText18] = [szText18],
[WDBA_szText19] = [szText19],
[WDBA_szText20] = [szText20],
[WDBA_szText21] = [szText21],
[WDBA_szText22] = [szText22],
[WDBA_szText23] = [szText23],
[WDBA_szText24] = [szText24],
[WDBA_szText25] = [szText25],
[WDBA_szText26] = [szText26],
[WDBA_szText27] = [szText27],
[WDBA_szText28] = [szText28],
[WDBA_szText29] = [szText29],
[WDBA_szText30] = [szText30],
[WDBA_szText31] = [szText31],
[WDBA_szText32] = [szText32],
[WDBA_szText33] = [szText33],
[WDBA_szText34] = [szText34],
[WDBA_szText35] = [szText35],
[WDBA_szText36] = [szText36],
[WDBA_szText37] = [szText37],
[WDBA_szText38] = [szText38],
[WDBA_szText39] = [szText39],
[WDBA_dwInteger00] = [dwInteger00],
[WDBA_dwInteger01] = [dwInteger01],
[WDBA_dwInteger02] = [dwInteger02],
[WDBA_dwInteger03] = [dwInteger03],
[WDBA_dwInteger04] = [dwInteger04],
[WDBA_dwInteger05] = [dwInteger05],
[WDBA_dwInteger06] = [dwInteger06],
[WDBA_dwInteger07] = [dwInteger07],
[WDBA_dwInteger08] = [dwInteger08],
[WDBA_dwInteger09] = [dwInteger09],
[WDBA_dwInteger10] = [dwInteger10],
[WDBA_dwInteger11] = [dwInteger11],
[WDBA_dwInteger12] = [dwInteger12],
[WDBA_dwInteger13] = [dwInteger13],
[WDBA_dwInteger14] = [dwInteger14],
[WDBA_dwInteger15] = [dwInteger15],
[WDBA_dwInteger16] = [dwInteger16],
[WDBA_dwInteger17] = [dwInteger17],
[WDBA_dwInteger18] = [dwInteger18],
[WDBA_dwInteger19] = [dwInteger19],
[WDBA_dwInteger20] = [dwInteger20],
[WDBA_dwInteger21] = [dwInteger21],
[WDBA_dwInteger22] = [dwInteger22],
[WDBA_dwInteger23] = [dwInteger23],
[WDBA_dwInteger24] = [dwInteger24],
[WDBA_lfFloat00] = [lfFloat00],
[WDBA_lfFloat01] = [lfFloat01],
[WDBA_lfFloat02] = [lfFloat02],
[WDBA_lfFloat03] = [lfFloat03],
[WDBA_lfFloat04] = [lfFloat04],
[WDBA_lfFloat05] = [lfFloat05],
[WDBA_lfFloat06] = [lfFloat06],
[WDBA_lfFloat07] = [lfFloat07],
[WDBA_lfFloat08] = [lfFloat08],
[WDBA_lfFloat09] = [lfFloat09],
[WDBA_lfFloat10] = [lfFloat10],
[WDBA_lfFloat11] = [lfFloat11],
[WDBA_lfFloat12] = [lfFloat12],
[WDBA_lfFloat13] = [lfFloat13],
[WDBA_lfFloat14] = [lfFloat14],
[WDBA_blBool00] = [blBool00],
[WDBA_blBool01] = [blBool01],
[WDBA_blBool02] = [blBool02],
[WDBA_blBool03] = [blBool03],
[WDBA_blBool04] = [blBool04],
[WDBA_dwDate00] = [dwDate00],
[WDBA_dwDate01] = [dwDate01],
[WDBA_dwDate02] = [dwDate02],
[WDBA_dwDate03] = [dwDate03],
[WDBA_dwDate04] = [dwDate04],
[WDBA_dwDate05] = [dwDate05],
[WDBA_dwDate06] = [dwDate06],
[WDBA_dwDate07] = [dwDate07],
[WDBA_dwDate08] = [dwDate08],
[WDBA_dwDate09] = [dwDate09],
[WDBA_decTimeStamp00] = [decTimeStamp00],
[WDBA_decTimeStamp01] = [decTimeStamp01],
[WDBA_decCurrency00] = [decCurrency00],
[WDBA_wmVar00] = [wmVar00],
[WDBA_wmVar01] = [wmVar01],
[WDBA_wmVar02] = [wmVar02],
[WDBA_wmVar03] = [wmVar03],
[WDBA_wmVar04] = [wmVar04],
[WDBA_wmVar05] = [wmVar05],
[WDBA_wmVar06] = [wmVar06],
[WDBA_wmVar07] = [wmVar07],
[WDBA_wmVar08] = [wmVar08],
[WDBA_wmVar09] = [wmVar09],
[WDBA_wmVar10] = [wmVar10],
[WDBA_wmVar11] = [wmVar11],
[WDBA_wmVar12] = [wmVar12],
[WDBA_wmVar13] = [wmVar13],
[WDBA_wmVar14] = [wmVar14],
[WDBA_wmVar15] = [wmVar15],
[WDBA_wmVar16] = [wmVar16],
[WDBA_wmVar17] = [wmVar17],
[WDBA_wmVar18] = [wmVar18],
[WDBA_wmVar19] = [wmVar19],
[WDBA_wmVar20] = [wmVar20],
[WDBA_wmVar21] = [wmVar21],
[WDBA_wmVar22] = [wmVar22],
[WDBA_wmVar23] = [wmVar23],
[WDBA_wmVar24] = [wmVar24],
[WDBA_wmVar25] = [wmVar25],
[WDBA_wmVar26] = [wmVar26],
[WDBA_wmVar27] = [wmVar27],
[WDBA_wmVar28] = [wmVar28],
[WDBA_wmVar29] = [wmVar29]
FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = @dwDocID
END;
------------------------------------------------------------------------------------------------------------
RETURN;