PDA

View Full Version : استفاده از FileStream سرور sql 2008



ariobarzan
سه شنبه 24 آذر 1394, 00:15 صبح
با سلام
من برای بار اول هست که میخوام از امکان FileStream سرور sql 2008 استفاده کنم برای ذخیره فایل های مختلف
تنظیمات روی سرور را برای فعال سازی اون انجام دادم ولی برای ذخیره و بازیابی فایل هنوز با علی رغم جستجو که تو این سایت و ... کردم موفق به این کار نشدم
من از AdoQuery استفاده می کنم . و دلفی 7
لطفا اگر امکان داره کد برنامه برای ذخیره و همینطور دریافت فایل را لطفا راهنمایی کنید .
برای ذخیره یه کارهایی کردم و هم رکورد به table اضافه شده و هم یک فایل عجیب غریب با همون حجم فایل اصلی توی فولدر FileStream روی سرور درست شد ولی برای لود کردن فایلی که برمی گرده حجمش صفر هست و بنظرم کارم اشکال داشته
ممنون
برای ذخیره از کد زیر استفاده کردم
procedure TFrmFS.BSaveClick(Sender: TObject);
var
vlStream: TFileStream;
BlobStream: TStream;

begin
if OpenDialog1.Execute then
begin
dm.ADQPic.insert;
vlStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
vlStream.Seek(0, soFromBeginning);

(dm.ADQPic.FieldByName('Pic') as TBlobField).LoadFromStream(vlStream);


vlStream.Free;
dm.ADQPic.Post;
showmessage('save');
end;
end;


برای بازیابی هم از این کد :


procedure TFrmFS.BtnLoadClick(Sender: TObject);

var
vlStream: TFileStream;
BlobStream: TStream;
begin
vlStream := TFileStream.Create('e:\1.jpg',fmCreate);
vlStream.Seek(0, soFromBeginning);
BlobStream :=dm.ADQPic.CreateBlobStream(dm.ADQPic.FieldByName ('pic'),bmRead);
vlStream.CopyFrom(BlobStream,BlobStream.Size);
BlobStream.Free;
end;

البته از توی سایتهایی که گشتم این کد ها را گیر آوردم و راستش خودم هم خیلی ازشون سر در نیاوردم
فقط اسم کوئری و نام فیلد خودم را جایگزین کردم اسم کوئری من ADQPic و اسم فیلد هم Pic هست
ممنون از راهنمایی شما