Пошаговая реализация локального файлового потока в SQL Server 2008
Настройка файлового потока на сервере sql:
- Сначала перейдите к управлению конфигурацией сервера SQL.
- Щелкните правой кнопкой мыши сервер QL (SQLEXPRESS) и выберите свойства.
- Выберите вкладку файлового потока и включите файловый поток.
Выполнить следующий сценарий в SQL Server 2008:
EXEC sp_configure filestream_access_level, 2 RECONFIGURE
Создать базу данных для файлового потока:
CREATE DATABASE MyFsDb
ON
PRIMARY ( NAME = MyFsDat,
FILENAME = 'c:\data\myfsdat.mdf'),
FILEGROUP MyFsGroup CONTAINS FILESTREAM( NAME = MyFs,
FILENAME = 'c:\data\myfs1')
LOG ON ( NAME = MyFsLog,
FILENAME = 'c:\data\myfslog.ldf')
GO
Создать таблицу:
CREATE TABLE MyFsTable
(
fId INT IDENTITY PRIMARY KEY,
fData VARBINARY(MAX) FILESTREAM NULL,
fName NVARCHAR(300),
RowGuid UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID()
)
Процедура добавления данных в таблицу:
ALTER PROCEDURE [dbo].[uspAddFile]
@fData VARBINARY(Max),
@ fName varchar(50),
AS
BEGIN
INSERT INTO MyFsTable (fData, fName, RowGuid) VALUES (@Item, @ItemName, DEFAULT)
END
Давайте добавим некоторые данные в таблицу из внешнего интерфейса, используя C #:
Public void AddFile()
{
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionstring"].ToString();
con = new System.Data.SqlClient.SqlConnection(connectionString);
cmd = new System.Data.SqlClient.SqlCommand("uspAddFile", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@fData", SqlDbType.Binary).Value = GetByte(TempPath);
cmd.Parameters.Add("@fName", SqlDbType.VarChar).Value = tempFile;
con.Open();
result = cmd.ExecuteNonQuery();
con.Close();
}