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است .
من باید چی کار کنم.
متشکرم
نماز و روزه ها تون قبول.
من می خوام فایل های گزارش فست ریپورت رو داخل یک جدول در 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است .
من باید چی کار کنم.
متشکرم