ورود

View Full Version : چک کردن تصویر در دیتابیس



S_O_S1982
سه شنبه 12 آبان 1388, 20:21 عصر
سلام دوستان
اگه سوالم تکراری هست ، ازتون عذر خواهی می کنم

من یه دیتابیس دارم که تو یکی از جداولش ، یک فیلد هست از نوع Image که تصاویر رو توش ذخیره می کنم ،
وقتی می خوام این تصاویر رو رو فرم نشون بدم ، چون کاربرا با اسکنر این تصاویر رو ذخیره کردن و توی این جدول ذخیره کردن ، هنگامی که تصویر رو می خواد لود کنه که نشون بده ، اگه تصویر بد ذخیره شده باشه ، خطا میده و از برنامه خارج میشه ، حالا من می خوام قبل از اینکه بخواد تصویر رو لود کنه ، قبلش چک کنه ببینه تصویر درست ذخیره شده یا نه ، اما نمی دونم باید چی کار کنم
یعنی نمی دونم چجوری باید چک کنم تصویر درست ذخیره شده یا نه ، به نظر شما باید چی کار کنم

پیشاپیش از توجه تون تشکر می کنم

Dr.Bronx
چهارشنبه 13 آبان 1388, 05:28 صبح
منظورتون از
اگه تصویر بد ذخیره شده باشه چی هست ؟

اگر تصویر ناقص ذخیره میشه که خوب این رو باید همون زمانی که داره اسکن می کنه متوجه بشید.

اگر منظورتون این هست که آیا اصلا اون تصویری که ذخیره کرده وجود داره یانه می تونید به صورت زیر عمل کنید .

از تابع Api زیر استفاده کنید .


private Declare Function PathFileExistsA Lib "shlwapi.dll" (ByVal pszPath As String) As Long

در صورتی که از recordset استفاده می کنید به این صورت عمل کنید.


if PathFileExistsA(rs("field_Image") then

picture1.picture = loadpicture (rs("field_Image")

else

msgbox "Tasvir mojod nist !"

end if

اگر هم موضوع چیز دیگه ای هست بیشتر توضیح بدید در این مورد شاید کمکی حاصل شد.

موفق و موید باشید ./

xxxxx_xxxxx
چهارشنبه 13 آبان 1388, 07:47 صبح
اگر هم موضوع چیز دیگه ای هست بیشتر توضیح بدید در این مورد شاید کمکی حاصل شد.
سلام،
فکر می کنم منظورشون اینه که کلاً تصویر زمانی که از دیتابیس خونده میشه اگر کامل نباشه ارور میده.
اگر زمانی که تصویر رو در DB ذخیره می کنید همونجا هم بازیابیش کنید میشه متوجه شد. یعنی بعد از این که تصویر ذخیره شد همونجا هم بازیابی شه ولی کاربر متوجه نشه. حالا تو بازیابی عکس On Error بزارید و بعد شماره خطا رو چک کنید (Err.Number) اگر خطا مربوط به عکس بود از کاربر بخواید که دوباره عکس رو اسکن و ذخیره کنه.

S_O_S1982
چهارشنبه 13 آبان 1388, 09:18 صبح
از توجه دوستان و همچنین راه حل هاشون ممنونم

فقط به این نکته اشاره کنم که ، کلا اسکن کردن تصاویر در این بخش توسط نرم افزاری جدا از نرم افزاری که ما نوشتیم انجام میشه و کلا اسکن تصاویر توسط گروهی دیگر در طبقه ی دیگر انجام میشه و روی پایگاه داده ، در شبکه ریخته میشه و ما از این تصاویر ذخیره شده در برنامه خودمون استفاده می کنیم ،
در مورد دوستی که لطف کردن و این راهنمایی رو انجام دادن :

if PathFileExistsA(rs("field_Image") then

picture1.picture = loadpicture (rs("field_Image")

else

msgbox "Tasvir mojod nist !"

عرض می کنم که چون بعضی از تصاویر به طور صحیح اسکن نشده و بدون اینکه چک بشه تو دیتابیس ذخیره شده وقتی خط انتصاب اون از رکورد ست به کنترل picture اجرا میشه ، اگه تصویر اشتباه ذخیره شده باشه ، error مربوط به اینکه نمی تونه این فیلد رو به picture بایند بکنه رو می ده

من در واقع می خوام قبل از انتصاب این فیلد به کنترل Picture یک پروسس بزارم ببینم تصویر درست ذخیره شده یا نه ، اما نمی دونم چجوری باید متوجه بشم تو فیلدی از نوع Image تصویر درست ذخیره شده یا نه

باز هم از توجهتون ممنونم

S_O_S1982
چهارشنبه 13 آبان 1388, 09:22 صبح
سلام،
فکر می کنم منظورشون اینه که کلاً تصویر زمانی که از دیتابیس خونده میشه اگر کامل نباشه ارور میده.
اگر زمانی که تصویر رو در DB ذخیره می کنید همونجا هم بازیابیش کنید میشه متوجه شد. یعنی بعد از این که تصویر ذخیره شد همونجا هم بازیابی شه ولی کاربر متوجه نشه. حالا تو بازیابی عکس On Error بزارید و بعد شماره خطا رو چک کنید (Err.Number) اگر خطا مربوط به عکس بود از کاربر بخواید که دوباره عکس رو اسکن و ذخیره کنه.


ممنون از توجه شما ، با راه حل شما فکر کنم مشکلم حل بشه ، اما من فکر می کردم میشه این کار رو بدون اینکه یه بار خودم این عکس ها رو با on error چک کنم ، انجام بدم ،
یعنی یه جوری از اطلاعات ذخیره شده تو فیلد متوجه بشم تصویر درست ذخیره شده یا نه

mpmsoft
چهارشنبه 13 آبان 1388, 09:34 صبح
روتین ذخیره تصویر در بانک و همچنین روتین استخراج تصویر از بانک رو بذارید رسیدگی کنیم