ورود

View Full Version : سوال: insert FileStram in database



almaswert
یک شنبه 01 آذر 1388, 18:03 عصر
من یک داده ای از نوع filestream دارم به چه روشی می توانم داده را در table ای در database ذخیره کنم و نوع ستون را در TAble از نوع VarBinary تعریف کرده ام. لطفا اگر میشه راهنمایی فرمایید.در SqlServer 2005

Reza.ariyan
یک شنبه 01 آذر 1388, 22:15 عصر
اگه منظورتون اینه




CREATE TABLE Test
(
Files VARBINARY(MAX) NOT NULL
)
Go

INSERT dbo.Test
(Files)
SELECT BulkColumn
FROM OPENROWSET(BULK '******' , Single_Blob) AS Files

که هیچی
به جای ****** آدرس فایل
وگر نه سوالتون رو کاملتر کنید و توضیح بیشتر بدید
آخه SQL2005 که نوع Filestream رو ساپورت نمیکنه

almaswert
دوشنبه 02 آذر 1388, 07:14 صبح
[
FileStream fileStreamUpdateFile = new FileStream(FilePath+strFileName, FileMode.Open);
BinaryReader binaryReaderUpdateFile = new BinaryReader(fileStreamUpdateFile);
byte[] ImageBytePersonelPic = null;
Convert.ToInt32((fileStreamUpdateFile.Length));
ImageBytePersonelPic = binaryReaderUpdateFile.ReadBytes(Convert.ToInt32(( fileStreamUpdateFile.Length)));
return ImageBytePersonelPic;

CODE]
[/CODE]

Reza.ariyan
دوشنبه 02 آذر 1388, 13:48 عصر
این جدولی که فایل استریم در اوون ذخیره میشه



CREATE TABLE [dbo].[FileTest]
(
[ID] [int] IDENTITY(1 , 1)
NOT NULL,
[File] [varbinary](50) NOT NULL,
CONSTRAINT [PK_ImageTypeTest] PRIMARY KEY CLUSTERED ([ID] ASC)
WITH (PAD_INDEX=OFF , STATISTICS_NORECOMPUTE=OFF , IGNORE_DUP_KEY=OFF ,
ALLOW_ROW_LOCKS=ON , ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]
)
ON [PRIMARY]


این هم SP که کار Insert تو جدول رو انجام میده



CREATE PROCEDURE SP_INSERT
@File VARBINARY(50)
AS
BEGIN
INSERT INTO dbo.FileTest
( [File] )
VALUES (@File)
END
GO


حالا میتونی تو برنامت این SP رو با پارامتر File@ که همون Filestream ت میشه Call کنی و مقدار رو تو جدول ذخیره کنی