PDA

View Full Version : بازیابی عکس از بانک SQL



sh_m
سه شنبه 26 آبان 1383, 12:51 عصر
سلام آقای ثباتی
خسته نباشید
من باز هم مزاحم شما شدم. خاطرتون هست من قبلا از شما در مورد بازیابی و نمایش عکسهای ذخیره شده در بانک sql سوال کرده بودم و شما پروسیجری به نام format blob از یک سایت را برای من لطف کردید و فرستادید .
Dim b As Binding = New Binding("Image", dataTable, "photo")
pictureBox1.DataBindings.Add(b)


Sub Format_Blob(sender As Object, e As ConvertEventArgs)
' Cast the raw data
Dim img() As Byte = CType(e.Value, Byte())

' Copy raw data to a memory stream
Dim ms As MemoryStream = New MemoryStream()
Dim offset As Integer = 0
ms.Write(img, offset, img.Length - offset)

' Create a bitmap from the memory stream
Dim bmp As Bitmap = New Bitmap(ms)
ms.Close()

' Bind the bitmap
e.Value = bmp
End Sub


با عرض تشکر فراوان از راهنماییهای بی دریغ شما ، میخواستم کمی بیشتر در این زمینه من رو راهنمایی کنید هر کار کردم جواب نگرفتم ، من نمی دونم چطور و کجا باید این زیربرنامه رو فراخوانی کنم .من یک هفته است دارم روی این موضوع کار می کنم ، در بخش VB.NET هم سوالم رو مطرح کردم ولی متاسفانه دوستانمون در اون بخش کمک چندانی نکردند.
و تنها کسی که احساس کردم می تونه به من کمک کنه شما هستید . منتظر پاسخ شما هستم . خیلی حیاتیه . تو کتابها هم توضیحات کاملی در این زمینه نیست . لطف کنید یک کتاب خوب هم در این زمینه معرفی کنید که کمتر مزاحم شما بشم .
با تشکر
:oops:

sh_m
سه شنبه 26 آبان 1383, 19:51 عصر
با عرض سلام و خسته نباشید.
مشکل من در زمینه بازیابی عکسها حل شد(در واقع نمایش عکسها).می خواستم بدونم آیا برای نمایش فایلهای html که در بانک SQL ذخیره کردم حتما باید اول اونا رو به صورت فایل روی دیسک ذخیره کنم یا احتیاجی به این کار نیست و بدون ذخیره فایل هم می تونم نمایشش بدم؟(می خوام همون طور که فایلهای عکس رو که در بانک ذخیره شدن نشون دادیم ، فایلهای html رو هم نشون بدیم)
من فایلهای html را دقیقا مثل عکسها در فیلدی از نوع Image ذخیره کردم.برای نمایش عکسهای داخل بانک ، در VB.Net از کنترل PictureBox با متد Image استفاده کردم(PictureBox1.Image) . برای فایلهای html باید از چه کنترلی استفاده کنم ؟آیا کنترل WebBrowser خوبه یا کنترل دیگری برای این منظور وجود داره؟و اگه باید از این کنترل استفاده کنم کدام متد آن فایل html مورد نظر را که در بانک ذخیره شده نشان می دهد.
خیلی ممنونم .ببخشید.

AminSobati
چهارشنبه 27 آبان 1383, 00:43 صبح
دوست عزیزم،
بسیار خوشحالم که مشکل اصلی شما در مورد نمایش تصویر حل شد. برای نمایش HTM از همون Web Browser استفاده کنین. ولی این آبجکت قادر نیست مستقیما از از دیتابیس بخونه. شاید مثالی که براتون ارسال کردم کمک کنه تا عمل خوندن HTM از دیتابیس رو ساده تر انجام بدین. شاید تصمیم بگیرین فایلهای HTM رو در فیلدهایی از جنس varchar ذخیره کنین؟! این بسته به نظر شماست...
موفق باشید

sh_m
پنج شنبه 28 آبان 1383, 10:13 صبح
سلام آقای ثباتی
خیلی خیلی از کمکتون متشکرم.(کاش مدیران سایر بخشهاهم مثل شما بودن)
من فایلهای HTM رو در دیتابیس در فیلدی از نوع varchar ذخیره و از اون بازیابی کردم. فقط یک مشکلی هست.بعضی از فایلها کامل ذخیره نمی شن. حتی من سایز فیلد varchar رو هم حداکثر یعنی 8000 در نظر گرفتم ولی بازم ناقص ذخیره می شن. نمی دونم چرا!
و آیا این روش ذخیره کردن فایلهای HTM روش مناسبی است؟ چون من باید تعداد بسیار زیادی فایل HTM رو در دیتابیس ذخیره کنم(از نظر سرعت و حجم دیتابیس.البته با توجه به اینکه فرمودید آبجکت Web Browser قادر نیست مستقیما از از دیتابیس بخونه و اینکه من می خوام دیتابیس دارای Security بالایی باشه ، گویا چاره دیگه ای نیست ).
یه سوال دیگه: برای اینکه به کد html فایلها دسترسی پیدا کنم، باید از چه آبجکتی با چه متدی استفاده کنم که کد فایلهای HTM رو برداره تا من در دیتابیس ذخیره کنم؟
ببخشید که دوباره مزاحمتون شدم.
باز هم ممنون.

AminSobati
پنج شنبه 28 آبان 1383, 23:02 عصر
دوست عزیزم،
زمانیکه Security برای شما اهمیت داره، نگهداری فایلها در SQL Server بهترین کاره!

از چه آبجکتی با چه متدی استفاده کنم که کد فایلهای HTM رو برداره تا من در دیتابیس ذخیره کنم؟

این سوال رو درست متوجه نشدم.

بعضی از فایلها کامل ذخیره نمی شن. حتی من سایز فیلد varchar رو هم حداکثر یعنی 8000 در نظر گرفتم ولی بازم ناقص ذخیره می شن.
آیا حجمشون از 8000 بایت بیشتره؟ اگر بله، پس از TEXT به جای VARCHAR استفاده کنین.
موفق باشید

sh_m
شنبه 30 آبان 1383, 09:46 صبح
با سلام

از چه آبجکتی با چه متدی استفاده کنم که کد فایلهای HTM رو برداره تا من در دیتابیس ذخیره کنم؟
من می خوام در یک برنامه در VB.Net نام فایل HTM رو وارد کنم بعد برنامه کد فایل رو در دیتابیس ذخیره کنه (یعنی لازم نباشه خودمون کد فایل HTM رو به صورت رشته وارد کنیم) . برای این منظور از چه آبجکتی باید استفاده کنم که کد فایل وارد شده را در دیتابیس ذخیره کنه؟
یه سوال دیگه:چرا VB.Net در فرمهای وب ، آبجکت Web Browser رو نمی شناسه. اون مثالی که برام فرستادین، که کد HTM رو دریافت می کرد و در آبجکت Web Browser صفحه وب مربوطه را نمایش می داد ، در فرمهای ویندوز درست جواب میده ولی در فرمهای وب خطا می ده و این آبجکت رو نمی شناسه. لطفا راهنمایی کنید.
منتظر پاسختون هستم.
مرسی.

AminSobati
یک شنبه 01 آذر 1383, 14:18 عصر
دوست عزیزم،
برای خواندن محتویات فایل HTM که در حقیقت Text ساده محسوب میشه، از StreamReader استفاده کنین. مثلا در همون اولین مثالی که فرستاده بودم، به این شکل تغییر بدین:

Dim imgStream As New StreamReader(FileName)
زمانی هم باید محتویات فایل رو بریزید داخل پارامتر، به این شکل:

imgStream.ReadToEnd

در مورد سوال دومتون، آبجکت Web Browser یعنی چیزی مثل Internet Explorer، و Web Application خودش داخل IE نمایش داده میشه. پس این مفهوم نداره که یک IE داخل IE قرار بگیره!
موفق باشید

sh_m
یک شنبه 01 آذر 1383, 15:36 عصر
سلام
خیلی متشکرم ولی
آبجکت Web Browser یعنی چیزی مثل Internet Explorer، و Web Application خودش داخل IE نمایش داده میشه. پس این مفهوم نداره که یک IE داخل IE قرار بگیره!

پس باید چه کار کنم ؟ چون من باید در فرم وب امکان دستیابی و نمایش فایلهای html ذخیره شده در بانک SQL را در ناحیه ای از فرم قرار دهم . آیا آبجکت دیگری برای این منظور وجود دارد ؟ اگر هست لطفا توضیح دهید چطور میتونم ازش استفاده کنم ؟
اگر چنین آبجکتی وجود ندارد پس به نظر شما من باید متون طولانی حاوی جدول را به غیر از html در چه قالبی ذخیره کنم ؟چون حجم این متون زیاده و من میخوام توسط یک نرم افزار این متون طبقه بندی شده حاوی جدول را ایجاد کرده و در بانک sql در فیلد بخصوصی ذخیره کنم . سپس آنها را در فرم web بسته به نیاز بازیابی و نمایش دهم.
امیدوارم خوب منظورم رو رسونده باشم . لطفا در این زمینه به کمک کنید .
منتظر پاسختون هستم . خواهش میکنم زودتر چون فرصتی ندارم .اگر WEB BROWSER در فرم های WEB جواب می داد مشکل من حل بود ولی.....
:sorry:

AminSobati
یک شنبه 01 آذر 1383, 22:40 عصر
دوست عزیزم،
من که براتون توضیح دادم به چه شکل محتویات HTML رو داخل SQL Server ببرین! درضمن حجم هر فایل شما چقدره؟ از یک گیگابایت بیشتره؟ قطعا نه. اگر از 8000 کاراکتر بیشتره از ntext استفاده کنین.
در مورد نمایش سورس HTML بازیافته شده از SQL Server، بهتره از دوستانی که در بخش ASP تخصص دارند کمک بگیرین. SQL Server سورس HTML رو بهتون برمیگردونه، از اینجا به بعد کار با Web Form انجام میشه.
موفق باشید

sh_m
دوشنبه 02 آذر 1383, 10:55 صبح
سلام
خیلی خیلی از زحمات شما متشکرم

AminSobati
دوشنبه 02 آذر 1383, 21:09 عصر
موفق باشین دوست من :)