Ako nastavím parameter cFile/cGallery/cCamera pre výber viacerých súborov naraz


cFile – je možné zadat do extended config vlastnosť MultiSelectWithDelimiter s hodnotou oddeľovača a potom je možné vyberať viacero súborov, ktoré sa následne vrátia do parametra vo forme base64 stringu oddelené zadaným oddeľovačom. Takisto názvy vybraných súborov sa vrátia do príslušného parametra oddelené zadaným oddeľovačom

Do poľa Sysname zadáme text MultiSelectWithDelimiter, DType necháme na String a klikneme Add. Následne sa nám nižšie v zozname objaví pole MultiSelectWithDelimiter, kde zadáme vybraný delimiter.

Príklad query na uloženie vybraných súborov do databázy:

DECLARE @DocID INT

DECLARE @Files AS TABLE (
RowNo INT,
File64 NVARCHAR(MAX)
)

DECLARE @Filenames AS TABLE (
RowNo INT,
Filename NVARCHAR(MAX)
)

INSERT INTO @Files (RowNo, File64)
SELECT (ROW_NUMBER() OVER (ORDER BY (Select 0))), value
    FROM STRING_SPLIT(@Documents, ';')

INSERT INTO @Filenames (RowNo, Filename)
SELECT (ROW_NUMBER() OVER (ORDER BY (Select 0))), value
    FROM STRING_SPLIT(@DocumentsNames, ';')

DECLARE @RowNo INT, @File64 NVARCHAR(MAX), @Filename NVARCHAR(MAX)

DECLARE TMP_Cursor CURSOR FAST_FORWARD FOR 
	SELECT RowNo, File64
    FROM @Files
OPEN TMP_Cursor
FETCH NEXT FROM TMP_Cursor INTO @RowNo, @File64
WHILE @@FETCH_STATUS = 0
BEGIN
	SELECT @Filename = Filename FROM @Filenames WHERE RowNo = @RowNo

	INSERT INTO TabDokumenty
	(Popis, JmenoACesta, DatZmenyDok, Dokument/* , Poznamka */, Autor)
	VALUES
	(ISNULL(@Popis, @Filename), @Filename, GETDATE(), CAST(N'' AS xml).value('xs:base64Binary(sql:variable("@File64"))', 'varbinary(max)') /* , @Poznamka */, @Prihlaseny)
	SELECT @DocID = SCOPE_IDENTITY()
	INSERT TabDokumVazba (IdDok, IdentVazby, IdTab)
	VALUES (@DocID, 17, @IDUlohy)

  FETCH NEXT FROM TMP_Cursor INTO @RowNo, @File64
END
CLOSE TMP_Cursor
DEALLOCATE TMP_Cursor