PDA

View Full Version : مقاله-داده نوع Blob



(امید)
چهارشنبه 20 خرداد 1383, 22:48 عصر
داده نوع Blob :

Binary Large Objects یا همان Blob به فیلدهایی اتلاق می شوندکه پویا هستند و در زمان اجرا نوع آنها مشخص می شود . ظرفیت یک فیلد Blob قابل پیشبینی نیست و گاهی ممکن است تنها 3بایت و گاهی فضایی حدود چند مگابایت را اشغال کند .
هر گاه لازم باشد تصاویر یا توضیحات فرمت بندی شده یا نشده و یا موسیقی و … را در بانک اطلاعاتی ذخیره کنیم استفاده از نوع داده Blob ضروری ترین قسمت کار خواهد بود .
در این مقاله سعی کرده ام به طور ساده ذخیره فیلدهای نوع Blob در دیتابیس و بازیابی و استفاده از آنها را شرح دهم . دیتابیس را Access و ارتباط با آن را با ADO انجام می دهیم .
در دیتابیس دو نوع فیلد تعریف می کنیم . یکی از نوع OLE که همان فیلد Blob ما است و نام آنرا MyBlob گذاشته و دیگری برای ذخیره نوع فرمت فیلد Blob ذخیره شده . نام این فیلد را Kind_MyBlob گذاشته و هدف ار این فیلد شناسایی فرمت فیلد Blob ذخیره شده هنگام بازیابی فیلدمان است .
فیلد Blob را به این صورت تعریف می کنیم


var myBlobfield:TblobField;

کد زیر نمونه ایی ساده برای ذخیره یک فیلد Blob است


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if savedialog1.Execute then
begin
adopic.Open;
adopic.append;
adopic.FieldByName('kind_myblob').AsString:='JPG';
adopicmyblob.LoadFromFile(savedialog1.FileName);
ado_word.Post;
end;
end;




به این کد توجه کنید adopicmyblob.LoadFromFile(savedialog1.FileName);
adopic نامی است که بر روی ADOQuery1 گذاشته و MyBlob نیز نام فیلد Blob ما می باشد . ما به جای اینکه از متغییر تعریف شده از نوع BlobField استفاده کنیم از AdopicMyBlob استفاده کرده ایم.
برای این کار باید FieldEditor کوئری مورد نظر را آورده و فیلد Blob را Add کنید.

کد adopic.FieldByName('kind_myblob').AsString:='JPG';
مشخص می کند که فرمت فیلد Blob ما JPG بوده . این فیلد در بازیابی فیلد به ما در شناسایی فرمت فیلد Blob کمک خواهد کرد.

حالا نوبت می رسد به بازیابی فایل مورد نظر


var myblobfield:tblobfield;
begin
if savedialog1.Execute then
begin
adopic.Open;
myblobfield:=adopicmyblob;
myblobfield.SaveToFile(savedialog1.FileName);
myblobfield.Free;
end;
end;


برای هر دو مورد از savedialog استفاده کرده ایم . با این دستورات شما هر نوع فرمتی را می توانید ذخیره و بازیابی کنید .
موفق باشید

امید