PDA

View Full Version : ذخیره فایل در بانک



setare7sky
سه شنبه 18 اردیبهشت 1386, 10:33 صبح
سلام
من کد زیر را برای ذخیره یک فایل در بانک نوشته ام ولی موقع اجرا خطای Invalid class typecast را می دهد . نوع فیلد r در بانک اطلاعاتی باینری است .




procedure TForm1.Button1Click(Sender: TObject);
var
Stream1: TfileStream;
Stream2: TStream;
begin
Stream1 := TfileStream.Create('c:\1.fr3', fmOpenRead);
try
ADODataSet1.Open;
ADODataSet1.append;
Stream2 :=ADODataSet1.CreateBlobStream(ADODataSet1.FieldBy Name('r'), bmReadWrite);


try
Stream2.CopyFrom(Stream1, Stream1.Size);
ADODataSet1.Post;
finally
Stream2.Free;
end;
finally
Stream1.Free;
end;
end;

کسی می تونه برای رفع این مشکل کمکم کنه؟

Bahmany
چهارشنبه 19 اردیبهشت 1386, 07:30 صبح
ado.edit;
TblobField(ADO['Memo']).loadFromFile('filename.txt');
ado.post;

setare7sky
چهارشنبه 19 اردیبهشت 1386, 10:47 صبح
سلام . از جوابتون ممنونم . من این کد رو امتحان کردم ولی حالا همون موقع Design خطای invalid type cast رو می ده .

vcldeveloper
پنج شنبه 20 اردیبهشت 1386, 09:53 صبح
از کلاس TStream مستقیما استفاده نکنید. بجاش از کلاس های مشتق شده از TStream استفاده کنید، مثل TFileStream یا TMemoryStream و ...

setare7sky
پنج شنبه 20 اردیبهشت 1386, 10:59 صبح
سلام
از جوابتون ممنونم . من نوع فیلد رو توی database به image تبدیل کردم و مشکل حل شد . البته نمی دونم کار درستی کردم یا نه ؟