# Native Code > برنامه نویسی در 6 VB > مطالب مرتبط با بانکهای اطلاعاتی در VB6 >  چگونگی ذخیره کردن تصویر در پایگاه داده

## mmssoft

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

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

* 
**»*قطعاً همه برنامه نویسان مایلند که در  برنامه های مربوط به پایگاه داده خود بتوانند تصویر را نیز ذخیره کنند چون این  امر یکی از ویژگیهای خوب و کارآمد برنامه خواهد بود . برای همین من این بار می  خواهم روش ذخیره کردن تصویر را در پایگاه داده به شما عزیزان آموزش دهم  .
*»* همینطور که شما عزیزان  برنامه نویس می دانید در پایگاه داده اکسس نوع مشخصی برای ذخیره کردن تصویر وجود  ندارد که ما به طور اختصاصی از آنها استفاده کنیم ولی یک نوع داده به نام  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نکته : باید توجه  داشته باشید که ذخیره کردن تصویر در پایگاه داده ظرفیت آن را به اندازه زیادی  افزایش خواهد داد .

 :کف کرده!:  :کف کرده!:  :کف کرده!:  کف کردید مثل این جوجه ها یا نه  :کف کرده!:  :کف کرده!:  :کف کرده!: 
 :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  *لطفا تشکر یادتون نره*  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:

----------


## Tasiyan

دوست عزيز بهتره كد هاتون رو داخل تگ CODE بزاريد تا خوانا تر باشه

----------


## SilverGold

با adodc هم توضیح می دین ممنون می شم

----------


## hossin74

سلام.اي كاش طرز خوندن از پايگاه داده رو هم مي نوشتين

----------


## mah6951

سلام 
من با همين روش تصوير در بانك ascess  ذخيره كردم براي بازيابي تصاوير و نمايش تصاوير ذخيره شده چه كدي بايد نوشت ؟ ممنون

----------


## M.T.P

من هیچ تکه کدی که عکس رو تو بانک ذخیره کنه نمیبینم!  :گیج: 
DataSource کنترل Picturebox رو به Data1 تنظیم میکنید؟  :متفکر:

----------


## mah6951

با روش بالا میشه تصویر را انتخاب کرد  و روی کنترل image  که قبلا در فرم طراحی شده گذاشت ولی زمانی که می خواهم ذخیره کنم تصویر در بانک ذخیره نمی شود .خاصیت datasource و datafield  برای کنترل image تنظیم کردم .میشه بگید مشکل کجاست؟

----------


## bhasoft

اقا سلام.مرسي از اموزش بسيار خوبتون.
فقط اگه ميشه درج و فراخواني تصوير رو هم در vb.net آموزش بدين.
خيلي ممنون ميشم اگه اين كارو بكنين.
چون واقعا برام مهمه...
مرسي
دستتون درد نكنه

----------


## kiss_my_l0ve

> با روش بالا میشه تصویر را انتخاب کرد و روی کنترل image که قبلا در فرم طراحی شده گذاشت ولی زمانی که می خواهم ذخیره کنم تصویر در بانک ذخیره نمی شود .خاصیت datasource و datafield برای کنترل image تنظیم کردم .میشه بگید مشکل کجاست؟


 :قهقهه: خوب معلومه ذخيره نميشه اي داداشمون خيلي به خودش فشار اورد اين كد ها رو نوشت
به ظر من كه از كامپوننت dbimage استفاده كنيين خيلي راحتره

----------


## kiss_my_l0ve

اين روش به نظر من راحت ترين روشه
http://up.iranblog.com/images/brw8tjf3o7wayqdvd9h.rar

با حجم 2.91

----------


## M_Maskout

ذخیره سازی عکس، صدا، فیلم و یا هر چیز دیگه تو بانک اطلاعاتی فقط جالبه! ولی کاربردی نیست.
افزایش چشمگیر حجم بانک که باعث افت سرعت دسترسی به اون می‌شه و امنیت نگهداری بانک رو هم پایین می‌یاره. هر چند این امکان در تقریباً تمام بانک‌های اطلاعاتی وجود داره، ولی بهتره فقط اسم و مسیر عکس‌ها رو تو بانک نگهداری کنین و خود عکس رو بیرون از بانک نگه دارین.

----------


## kiss_my_l0ve

يه سورس بزاري ممنون ميشم

----------


## soheilbehro

> با adodc هم توضیح می دین ممنون می شم


 با adodc امکان ذخیره مستقیم عکس تو بانک اطلاعاتی نیست و باید مسیر عکس رو ذخیره و نمایش بدی

----------


## kiss_my_l0ve

اگه نمونه برنامه اي كه من گذاشتم رو يه نگاه كني ميبيني كه با adodc هم ميشه عكس رو ذخيره كرد

----------


## soheilbehro

> ذخیره سازی عکس، صدا، فیلم و یا هر چیز دیگه تو بانک اطلاعاتی فقط جالبه! ولی کاربردی نیست.
> افزایش چشمگیر حجم بانک که باعث افت سرعت دسترسی به اون می‌شه و امنیت نگهداری بانک رو هم پایین می‌یاره. هر چند این امکان در تقریباً تمام بانک‌های اطلاعاتی وجود داره، ولی بهتره فقط اسم و مسیر عکس‌ها رو تو بانک نگهداری کنین و خود عکس رو بیرون از بانک نگه دارین.


 عیب این روش هم اینه که امنیت میاد پایین و هر کسی می تونه بره و اون عکس ها رو ببینه و هم مشکل پشتیبان گیری هم پیش میاد که سخت تر میشه
بهترین روش برای ذخیره عکس در بانک اطلاعاتی ، استفاده از بانک اطلاعاتی sql است

----------


## pedramsanati

ایول اویل این تاپیکو ایول

----------


## Javad-2010

با سلام؛
اگر بخواهیم عکسی که در دیتابیس ذخیره شده است را بصورت یک فایل داشته باشیم باید چه کار کنیم؟
با تشکر

----------

