PDA

View Full Version : ذخیره فایل گزارش Fast Report*.Fr3 در Sql



ictboy
شنبه 21 شهریور 1388, 15:11 عصر
با سلام و خسته نباشید خدمت تمامی اساتید گرامی
نماز و روزه ها تون قبول.


من می خوام فایل های گزارش فست ریپورت رو داخل یک جدول در Sql Server ذخیره کنم .
با جستجو در سایت و با استفاده از گزینه های Blob و Stream پست هایی رو پیدا کردم.
نهایتا از کد زیر برای ذخیره فایل در دیتابیس استفاده کردم



FileStream : TFileStream;
BlobStream: TADOBlobStream;
File_Name : String;
begin
ADOQuery1.Open;
ADOQuery1.Append;
IF OpenDialog1.Execute Then
File_Name:=OpenDialog1.FileName;

FileStream := TFileStream.Create(File_Name,fmOpenRead);
BlobStream := TADOBlobStream.Create(ADOQuery1.FieldByName('Repor tFile') as TBlobField,bmWrite);
BlobStream.Seek(0,soFromBeginning);
BlobStream.Truncate;
BlobStream.CopyFrom(FileStream,FileStream.Size);
FileStream.Free;
BlobStream.Free;
ADOQuery1.Post;





مشکل اینجاست که برنامه در خطی که مشخص کردم پیغام خطای Invalid Class typecast رو میده .
در جدولم یک فیلد به نام ReportFile دارم که از نوع binaryاست .
من باید چی کار کنم.

متشکرم

ictboy
یک شنبه 22 شهریور 1388, 07:58 صبح
سلام
من فکر می کردم از نوع داده Image در SQL فقط برای فایل های تصویری استفاده میشه و برای فایل های دیگر باید نوع داده Binary را انتخاب کرد.
کدی که در پست قبلی قراردادم این کار رو انجام میده فقط باید در SQL نوع داده رو Image انتخاب کنیم.

ariobarzan
چهارشنبه 13 آبان 1388, 13:00 عصر
با سلام
لطفا در مورد بازيابي فايل از محل ذخيره شده در sql روي مسير مورد نظر كاربر هم توضيح دهيد
:تشویق::تشویق::تشویق:

ariobarzan
جمعه 15 آبان 1388, 16:07 عصر
دوست من پس چی شد؟