Programy dla firm - InsERT
Wróć do wyszukiwarki

e-Pomoc techniczna

InsERT nexo – Włączenie mechanizmu FILESTREAM

Program: Gestor nexo, Gratyfikant nexo, InsERT nexo, Rachmistrz nexo, Rewizor nexo, Subiekt nexo

Kategoria: Rozwiązania sferyczne

Uwaga! Poniższy artykuł przedstawia przykład jednego z zaawansowanych rozwiązań przygotowanych dla programów linii nexo. W razie problemów prosimy o kontakt z naszymi lokalnymi serwisantami​ w celu konfiguracji.

Podczas korzystania z programów linii InsERT nexo możliwe jest włączenie mechanizmu FILESTREAM, który pomocny jest m.in. podczas pracy na danych, takich, jak: zdjęcia, pliki wideo, czy dokumenty.

Uruchomienie mechanizmu FILESTREAM (w skrócie FS) odbywa się w następujący sposób:

  1. Włączyć FS w usłudze SQL.

  2. Włączyć FS w serwerze SQL.

  3. Dodać do bazy danych grupę FILESTREAM.

  4. Do wybranych tabel dodać wymagane kolumny.​

Pierwszym etapem jest uruchomienie FS w usłudze SQL. W tym celu należy:

Uwaga! FILESTREAM nie działa na serwerze SQL w wersji 32-bit, zainstalowanym w systemie operacyjnym 64-bit. (Na 32-bit owym serwerze 32-bitowy SQL działa z FILESTREAM).

1. Uruchomić SQL Server Configuration Manager, kliknąć prawym przyciskiem myszy na instancję SQL i wybrać Właściwości.

 

2. Na zakładce FILESTREAM zaznaczyć Enable FILESTREAM for Transact-SQL access. Z​apisać wprowadzone zmiany przyciskiem OK.

Uwaga! Jeśli opcja ta zostaje włączona po raz pierwszy, wymagany jest reset komputera z serwerem SQL.

 

3. Kolejno należy uruchomić Microsoft SQL Server Management Studio i zalogować się do usługi SQL.

 

4. Kliknąć prawym przyciskiem myszy instancję, do której ma zostać dodany FS, następnie wybrać Properties.

 

5. Przejść do Advanced i w sekcji FILESTRAM parametr FILESTREAMAccessLevel ustawić na Transact-SQL access enabled. Zapisać zmiany przyciskiem ​OK.

 

6. Zresetować serwer SQL klikając instancję prawym przyciskiem myszy i wybierając Restart.

 

7. Kolejnym krokiem jest dodanie grupy FILESTREAM do bazy danych, aby mogła ona zapamiętać dane w systemie plików i zarezerwować miejsce na FILESTREAM.

Mechanizm FILESTREAM wymaga dodania elementu FILEGROUP do bazy danych. W elemencie FILEGROUP należy wskazać element FILE, który wskazuje na katalog, w którym będą tworzone pliki z zawartością atrybutów typu FILESTREAM.

Można posłużyć się poniższym skryptem SQL:

DECLARE @dbName NVARCHAR(100)

-- W poniższych liniach należy wpisać nazwę bazy danych, do której ma zostać dodany FILESTREAM

SET @dbName = N'NAZWA BAZY DANYCH'

use NAZWA BAZY DANYCH

 ​

IF NOT EXISTS(​

BEGIN

WHERE

 

END

ELSE

BEGIN

END

 

8. Ostatnim krokiem jest dodanie atrybutów typu FILESTREAM do tabel. Jedynie atrybuty typu varbinary(max), varchar(max) lub nvarchar(max) mogą być pamiętane w plikach w systemie plików serwera SQL.

Aby użyć FILESTEAM, należy „dodać" do atrybutu typu varbinary(max), varchar(max) lub nvarchar(max) flagę FILESTREAM. Z uwagi na to, że SQL nie przewiduje dodania takiego atrybutu przy pomocy polecenia ALTER TABLE, ALTER COLUMN, należy to zrobić np. przez dodanie nowej kolumny.

Mechanizm FILESTREAM wymaga atrybutu typu UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE w tabelach, które mają atrybuty z flagą FILESTREAM. nexo dodaje do wybranych tabel (lista poniżej) takie właśnie atrybuty.

Poniższy przykład przedstawia, jak można dodać FILESTREAM do tabeli ze zdjęciami w Towarach i Klientach nexo.

-- Wybrać bazę danych

USE [NAZWA BAZY DANYCH]

GO

-- Zmiana nazwy atrybutu, który zawiera zdjęcia (zabieg jest konieczny,

-- bo tabela może zawierać już dane)

--

EXEC sp_rename '[ModelDanychContainer].[ZawartosciDokumentow].[Dane]', 'DaneBak', 'COLUMN';

GO

-- Dodanie atrybutu z flagą FILESTREAM

-- (nie da się zrobić ALTER COLUMN który dodaje/usuwa FILESTREAM)

-- Przed dodaniem kolumny typu FILESTREAM musi być już

-- kolumna typu UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE

-- (w przypadku nexo taka kolumna już jest (Dane_FileStreamId)

--

ALTER TABLE [ModelDanychContainer].[ZawartosciDokumentow]

[Dane] [varbinary](max) FILESTREAM NULL

GO

-- Przepisanie wartości do „nowej" struktury

UPDATE ModelDanychContainer.ZawartosciDokumentow

Dane = DaneBak

GO

-- usunięcie „niepotrzebnej" już kolumny

ALTER TABLE [ModelDanychContainer].[ZawartosciDokumentow]

GO

 

Obecnie do nexo można ustawić kolumny FILESTREAM w następujących tabelach:

  1. ModelDanychContainer.ZawartosciZalacznikowPocztowych atrybut: Dane

  2. ModelDanychContainer.ZawartosciDokumentow atrybut: Dane

  3. ModelDanychContainer.ZawartosciObiektowBibliotekiDokumentow atrybut: Dane

W przypadku tych tabel dodano na potrzeby FILESTREAM kolumny o nazwie: Dane_FileStreamId

Powiązane zagadnienia e-Pomocy technicznej:

Czy artykuł był pomocny?TAKNIE

Dlaczego artykuł oceniasz jako nieprzydatny?

Dziękujemy za opinię
drukujWróć do wyszukiwarki