SQLServer2008でのローカルファイルストリームのステップバイステップの実装
SQLサーバーでファイルストリームを構成します。
- まず、SQLサーバーの構成管理に移動します。
- QLサーバー(SQLEXPRESS)を右クリックし、プロパティを選択します。
- [ファイルストリーム]タブを選択し、ファイルストリームを有効にします。
SQLServer2008で次のスクリプトを実行します。
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();
}