نمایش نتایج 1 تا 11 از 11

نام تاپیک: ذخیره عکس در دیتابیس به روشی دیگر

  1. #1

    Question ذخیره عکس در دیتابیس به روشی دیگر

    همونطور که میدونید برای ذخیره عکس در دیتابیس ابتدا عکس را از داخل picturebox داخل هارد ذخیره میکنیم و سپس اونرا با متد get در یک آرایه بایت می ریزیم.
    من باید تصاویر زیادی را پشت سر هم ذخیره کنم و سرعت هم برام خیلی مهمه.
    حالا سوالم اینکه چطور میشه ذخیره در هارد را برداشت تا سرعت زیادتر بشه. یعنی آیا میشه به جای ذخیره در هارد در یک قسمت از رم ذخیره کرد و بعد اون قسمت را در دیتابیس قرار داد؟

  2. #2
    کاربر دائمی آواتار CodeMasterX
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Iran, Shiraz
    سن
    36
    پست
    960

    Cool

    درست یادم نیست پس اگر اشتباه بود خودتون عذر خواهی رو لحاظ کنید.
    اگر درست یادم باشه میشه اینجوری هم نوشت:


    rs.Fields("Image").Value = Picture1.Piucture
    rs.Update
    rs.Update adAffectAllChapters
    فراموش نشه که فرمت فیلد باید OLE (در اکسس) و Image در SQLServer باشه.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    dg,qt?
    پست
    70
    اصولا ذخیره کردن تصویر مخصوصا برای شما که سرعت هم براتون مهمه با این روش منطقی نیست . بهترین کار ذخیره آدرس تصویر در دیتا بیس است

  4. #4
    کاربر دائمی آواتار CodeMasterX
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Iran, Shiraz
    سن
    36
    پست
    960

    Cool

    نقل قول نوشته شده توسط Mahdad999 مشاهده تاپیک
    اصولا ذخیره کردن تصویر مخصوصا برای شما که سرعت هم براتون مهمه با این روش منطقی نیست . بهترین کار ذخیره آدرس تصویر در دیتا بیس است
    برای برنامه های تحت ویندوز شدیدا با این روش مخالفم!
    اگر بعدا کاربری اسم و مسیر فایل های ثبت شده رو روی هارد دیسک تغییر داد چی ؟
    بهترین راه همون ذخیره عکس ها بصورت باینری در دیتابیس هست.این روشی که شما میگین برای وب سایت ها خوبه که نمیشه به این راحتی ها مسیر و نام فایل ها رو عوض کرد مگر خود مدیر وب سایت که اون هم مریض نیست که همچین کاری بکنه.

  5. #5
    نقل قول نوشته شده توسط CodeMasterX مشاهده تاپیک
    برای برنامه های تحت ویندوز شدیدا با این روش مخالفم!
    اگر بعدا کاربری اسم و مسیر فایل های ثبت شده رو روی هارد دیسک تغییر داد چی ؟
    بهترین راه همون ذخیره عکس ها بصورت باینری در دیتابیس هست.این روشی که شما میگین برای وب سایت ها خوبه که نمیشه به این راحتی ها مسیر و نام فایل ها رو عوض کرد مگر خود مدیر وب سایت که اون هم مریض نیست که همچین کاری بکنه.
    اگر سیستمی باشه که تنها مدیر با آن کار می کنه و تمامی عکسها در یک پوشه قرار بگیره از این لحاظ فکر نمی کنم مشکل داشته باشه و همینطوری که Mahdad999 اشاره کردند با وجود حجم کم دیتابیس سرعت پردازش رکوردها هم افزایش پیدا میکنه
    اما اگر عکس ها بصورت باینری در دیتابیس ذخیره بشوند ، امنیت بین اطلاعات و عکسها و همچنین پشتیبان گیری - بازیابی دیتابیس یکپارچه میشه

  6. #6
    کاربر دائمی آواتار CodeMasterX
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Iran, Shiraz
    سن
    36
    پست
    960
    ببین دوست عزیز،اگر این روش قرار باشه روی یک وب سایت پیاده باشه،همونطوری که گفتم خوبه.چرا که فقط مدیر یا مدیران وب سایت به فایل ها دسترسی دارن.
    ولی اگر این کار برای یه برنامه ویندوزی (Desktop App) استفاده بشه اونوقت مشکل ساز میشه.چرا ؟ چون کاربر ویندوز به فایلهای عکس دسترسی داره و اینکه بخوایم به فکر پنهان کردن و یا محدود کردن دسترسی به این فایل ها هم باشیم کار منطقی نیست.
    در ضمن باید بگم که مایکروسافت در راهنمای MSDN مربوط به آفیس 2003 نوشته که بانک اکسس هر رکوردی تا سقف حجم 1 گیگا بایت رو به خوبی پشتیبانی میکنه و من این رو امتحان کردم و صحت هم داره.دیگه مابقی سرعت دسترسی به داده ها به الگوریتم ها و روش های بازیابی اطلاعات برنامه بستگی داره که به عهده برنامه نویس هست که بهترین روش رو انتخاب کنه.

  7. #7
    نقل قول نوشته شده توسط CodeMasterX مشاهده تاپیک
    برای برنامه های تحت ویندوز شدیدا با این روش مخالفم!
    اگر بعدا کاربری اسم و مسیر فایل های ثبت شده رو روی هارد دیسک تغییر داد چی ؟
    بهترین راه همون ذخیره عکس ها بصورت باینری در دیتابیس هست.این روشی که شما میگین برای وب سایت ها خوبه که نمیشه به این راحتی ها مسیر و نام فایل ها رو عوض کرد مگر خود مدیر وب سایت که اون هم مریض نیست که همچین کاری بکنه.

    ولی سرعتی که در ذخیره آدرس در بانک وجود داره، بسیار بالاتره. نمیشه انکار کرد.

  8. #8
    کاربر دائمی آواتار CodeMasterX
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Iran, Shiraz
    سن
    36
    پست
    960
    همیشه سرعت ملاک نیست دوست عزیز.
    برنامه باید امنیت و داده ها باید اعتبار داشته باشن.

  9. #9
    ببینید دوستان اصلا سرعت بازیابی برام اصلا مهم نیست.چون هر عکس تقریبا 1 یا 2 کیلوبایت حجم داره (آیکون هستند) .
    از روش آدرس هم نمی خوام استفاده کنم با نظر آقای CodeMasterX کاملا موافقم.
    من فقط میخوام در هنگام ذخیره عکسها "ذخیره در هارد " را حذف کنم. و در رم که سریعتر است ذخیره کنم.(به توضیحاتی که در اولین پست دادم توجه کنید).

  10. #10
    کاربر دائمی آواتار CodeMasterX
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Iran, Shiraz
    سن
    36
    پست
    960
    نیما جان همونجور که گفتم اگر نخوایی توی هارد ذخیرشون کنی،میتونی مقدار فیلد رو مستقیما به PictureBox ست کنی.البته اگر درست یادم باشه مطمئن نیستم.
    یا روش دیگه اینه که چون حجم فایل ها کم هستن،آدرس فایل عکس یا آیکونی که در PicBox هست رو بگیری و اطلاعات بانریش رو تو یه متغیر بایت بریزی و بعد ذخیرش کنی تو بانک داده.

  11. #11
    می بخشید ولی آیا ذخیره کردن تصاویر در حافظه رم معنا دارد؟
    این برای بانک محدودی از تصاویر آن هم به قول شما آیکون آن هم شاید مناسب باشد
    بهترین راه از نظر من اینستکه آدرس تصاویر ذخیره شود .
    ولی آیا نباید آخر داده ها در هارد ذخیره شوند؟ مگر اینکه بانک داده های تصاویر نباشد و شما بخواهید تنها در هنگام اجرای برنامه با هر تصویری که شد کار کنید.
    آخرین ویرایش به وسیله mehraeen : دوشنبه 13 اسفند 1386 در 09:21 صبح دلیل: شرح بیشتر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •