Ms Sql server 2008 ile gelen yeni özelliklerden birisi de Filestream özelliği.Öncesin de DataBase üzerinde BLOB tipinde binary datalar tutardık.Filestream de datalar NTFS disk sisteminde dosyalarda tutuluyor.Yani DataBase üzerinde değil. Fakat verilere, DataBase engine üzerinden ulaşıyoruz. Artık Ses dosylarını ,Resim gibi verileri tutmak için FileStrem yapısını kullanabiliriz. Şimdi bir örnek ile daha ayrıntılı inceleyelim...
Öncelikle disk üzerinde FileStrem ve data dosyalarının olacağı yeni dosya yaratalım
C:\data
Ms SQL server sunucumuzda filestream özelliğini enable edelim
EXEC sp_configure 'filestream_access_level',2
RECONFIGURE
Tabiki bununla yetmiyor, birde configure tools dan enable edilmesi gerekiyor.
Start menu / All Programs /Microsoft SQL Server 2008/ Configuration Tools/ SQL Server Configuration Manager. Sağ click SQL Server Services properties / click FILESTREAM tab /enable FILESTREAM.
Eğer yazma ve okuma işlemleri olucaksa "FILESTREAM for file I/O streaming access" bölümünü de anable yapılmalı
Yeni bir DB yaratalım
CREATE DATABASE DOSYA
ON
PRIMARY ( NAME=DOSYA,FILENAME='c:\data\DOSYA.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME=DOSYA3,FILENAME='c:\data\filestream1')
LOG ON(NAME=DOSYA1,FILENAME='c:\data\DOSYA.ldf')
GO
Dosyalarımızı bir kontrol edelim.
C:\data altına yeni bir filestream dosyası yarattı
Şimdi yeni bir tablo yaratalım.
Not: Filestream içeren tabloda [uniqueidentifier] alan kullanılması zorunludur. Filestream column veritipi VARBINARY(MAX) FILESTREAM
use DOSYA
GO
CREATE TABLE Döküman
(
[Id] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[SerialNumber] INTEGER UNIQUE,
[Chart] VARBINARY(MAX) FILESTREAM NULL
)
GO
Tablonun özelliğine baktığımızda Filestream filegroup olarak yeni yarattımız Filestream filegroup1 üzerine konumlanmıştır.
Böylelikle Filestream özelliğinden yararlanarak yeni bir tablo yaratmış olduk. Küçük bir örnek yapıcak olursak şu şekilde bir kayıt insert edelim.Bu instert verileri içeren bir dosya nasıl oluşturulur bize gösteriyor.
INSERT INTO Döküman
VALUES (newid (), 1, CAST ('ilker usta pusulanı ayarla' as varbinary(max)));
GO
Şimdi gidip fileStream FileGroup incelersek buraya binary dataların oluştuğunu ve disk üzerindeki dosyalarda tutulduğunu görebiliriz.
Bu dosyaları notepad ile açarsanız içerisinde insert edilen bilgileri görebilirsiniz. ( kontrol ettiğimde son insert ettiğim bu metni görüyorum 'ilker usta pusulanı ayarla')
Şimdilik kolay gelsin J