چهارشنبه بيست و چهارم اسفند 1384 ساعت 21:12

ذخیره کردن تصویر در پایگاه داده

» قطعاً همه برنامه نویسان مایلند که در برنامه های مربوط به پایگاه داده خود بتوانند تصویر را نیز ذخیره کنند چون این امر یکی از ویژگیهای خوب و کارآمد برنامه خواهد بود . برای همین من این بار می خواهم روش ذخیره کردن تصویر را در پایگاه داده به شما عزیزان آموزش دهم .

» همینطور که شما عزیزان برنامه نویس می دانید در پایگاه داده اکسس نوع مشخصی برای ذخیره کردن تصویر وجود ندارد که ما به طور اختصاصی از آنها استفاده کنیم ولی یک نوع داده به نام OLE Object وجود دارد که می تواند هر گونه داده ای مانند صدا و تصویر را پشتیبانی کند . برای شروع شما برنامه Access را باز کرده و این فیلد ها را در آن ایجاد نمایید :

ID => AutoNumber

Picture => OLE Object

حال این جدول را با نام Sample ذخیره کنید و پایگاه داده را با نام db.mdb ذخیره نمایید . حال بدون این که داده ای در در این جدول وارد کنید از Access خارج شده و ویژوال بیسیک عزیز خودمان را باز کنید .

» مواد لازم: ابزارهای مورد نیاز برای کار را به صورت جدول زیر بر روی فرم خود قرار داده و خاصیت های آنها را تنظیم کنید :

نام کنترل

خاصیت DataSource

خاصیت DataField

Data1

-------------

------------

Text1

Data1

ID

Image1

Data1

Picture

نام کنترل

خاصیت Name

خاصیت Caption

Command1

CmdNew

New

Command2

CmdSave

Save

Command3

CmdCancel

Cancel

CommonDialog1

CmDialog

-------

کدهای زیر را برای ایجاد ارتباط با پایگاه داده در Form_Load بنویسید :

()Private Sub Form_Load

       "Data1.DatabaseName = App.Path & "\db.mdb

"Data1.RecordSource = "SELECT * FROM Sample

Data1.Refresh

End Sub

» کد باز کردن کادر محاوره ای برای انتخاب عکس با دابل کلیک کردن بر روی ImageBox :

()Private Sub Image1_DblClick

"CmDialog1.Filter = "(*.jpg)|*.jpg

CmDialog.ShowOpen

If CmDialog.FileName <> "" Then

(Image1.Picture = LoadPicture(CmDialog.FileName

End If

End Sub

» کد برای ایجاد رکورد جدید :

()Private Sub CmdNew_Click

Data1.Recordset.AddNew

CmdNew.Enabled = False

CmdSave.Enabled = True

CmdCancel.Enabled = True

Call Image1_DblClick

End Sub

» کد برای ذخیره کردن رکورد ایجاد شده :

()Private Sub CmdSave_Click

Data1.Recordset.Update

CmdNew.Enabled = True

CmdSave.Enabled = False

CmdCancel.Enabled = False

Data1.Recordset.MoveLast

End Sub

» کد برای صرف نظر کردن از رکورد ایجاد شده :

()Private Sub CmdCancel_Click

Data1.Recordset.CancelUpdate

CmdNew.Enabled = True

CmdSave.Enabled = False

CmdCancel.Enabled = False

End Sub

نکته : باید توجه داشته باشید که ذخیره کردن تصویر در پایگاه داده ظرفیت آن را به اندازه زیادی افزایش خواهد داد .

» برای درک بهتر مطلب گفته شده شما می توانید از برنامه نمونه استفاده کنید .