رفتن به مطلب
  • 0

چگونه فقط عکس را از دیتابیس آفلاین فراخوانی کنیم


ali2016

سوال

سلام برنامه ای ساختم که در اون مجبور شدم عکس رو در دیتابیس بزارم
دیتا بیس دو تا ستون داره به اسم های value که از نوع intager و یکی به نام aks که از نوع txt هست که عکس هارو تو txt بارگزاری کردم و به value عدد 1 دادم
 

Sub Process_Globals
    Dim s As SQL
End Sub

Sub Globals
	Private ImageView1 As ImageView    اینو تو اکتیویتی بار گزاری کردم
    Dim CUR As Cursor
    Dim bp As BitmapExtended



    Dim sh As Int
    Dim h As Int
End Sub

تو رویداد اکتیویتی کریت هم نوشتم
 

Activity.LoadLayout("layesafesafeha")


اس کیو ال رو فراخوانی کردم

  If File.Exists(File.DirInternal, "saf12.db") = False Then
	File.Copy(File.DirAssets, "saf12.db", File.DirInternal, "saf12.db")
End If
  
   If s.IsInitialized = False Then
	
 s.Initialize(File.DirInternal,"saf12.db",False)

End If

 

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

هیچ چیز اضافه ای لازم نیست.......تو تایپیک های دیگه جستو جو کردم ولی خیییلی پیچیده توضیح داده بودن و همزمان آموزش گذاشتن متن هم گذاشته بودن.

در حالی که من فقط میخوام عکس رو فر خوانی کنم

 

 

پیشا پیش تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ارسال‌های توصیه شده

مشکل تموم شد.:gamer2:

با تشکر از آقای ایزدی و دیگر اساتید:53:

اینم سورس کد اصلی که مشکل توش حل شده.:good2:

سورس کد گرفتن عکس از دیتابیس و جایگزاری آن در ایمیج ویو

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببنید بستگی به خودتون داره

ستون های دیتابیستون رو اینجا بگید تا بنده بگم به چه شکله، یک عکس از جدولتون هم قرار بدید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اسمش sql22

اسم تیبل TBL

ستون اول id از نوع intager  که فقط عدد توشه مثلا سطر اول 1 سطر دوم 2 سطر سوم 3 و کلا سه سطر داره

ستون دوم به نام image از نوع blob که فقط عکس در اون گذاشتم    در هر سه سطر عکس قرار گرفته

این مشصات SQL بنده هست

 

و یه چیز خیلی مهم اینکه این رو چطور باید فراخوانی بکنم ؟

Sub ReadBlob(id As Int) As Bitmap
    Dim Cursor1 As Cursor
	
    Cursor1 = SQL1.ExecQuery("SELECT * FROM tbl WHERE id=" & id)
    Cursor1.Position = 0
	
    Dim Buffer() As Byte 
    Buffer = Cursor1.GetBlob("image")
    Dim InputStream1 As InputStream
    InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
   
    Dim Bitmap1 As Bitmap
    Bitmap1.Initialize2(InputStream1)
    InputStream1.Close
   Return Bitmap1
End Sub

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ImageView1.Bitmap = ReadBlob(id)

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

در 25 دقیقه قبل، مجید آرتا گفته است :

ImageView1.Bitmap = ReadBlob(id)

 

اینم انجام دادم که با ارور زیر مواجه شدم

 

Screenshot_2016-11-05-15-52-56.jpeg

در 2 ساعت قبل، مجید آرتا گفته است :

ببنید بستگی به خودتون داره

ستون های دیتابیستون رو اینجا بگید تا بنده بگم به چه شکله، یک عکس از جدولتون هم قرار بدید.

ستون هارو دادم

 

اسمش sql22

اسم تیبل TBL

ستون اول id از نوع intager  که فقط عدد توشه مثلا سطر اول 1 سطر دوم 2 سطر سوم 3 و کلا سه سطر داره

ستون دوم به نام image از نوع blob که فقط عکس در اون گذاشتم    در هر سه سطر عکس قرار گرفته

این مشصات SQL بنده هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

ببینین واسه فراخوانی عکس دو روش هست یکی از روش blob و یکی اسم عکس

من خودم از اسم عکس استفاده میکنم و فکر کنم راحت باشه

ببینین برای مثال :

یه عکس رو به پوشه فایل کپی کنین و اسم اونو تو تیبل بدین

testd.png

فیلد value هم از نوع text هستش

حالا تو فراخوانی

Dim Image1 as ImageView

image1.Initialize("")
image1.Bitmap = LoadBitmap(File.DirAssets,cur.GetString("Value"))

به این سادگی

یعنی شما میای فقط از اسمش استفاده میکنی

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنونم از این که وقتتونو گذاشتید و پاسخ دادید

 

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

لطفا اگر شما یا اساتید میتونین روشی اراعه بدید که از سر در گمی در بیام دیروز 6 ساعت به اون روشی که هم عکس رو هم متن رو فراخوانی میکرد دقت کردم ولی یه کد رو که تغیییر میدادم با اطلاعات من جور در نمیومد چون من تو برنماه از اسکرول ویو استفاده نکردم و همینطور ایمیج رو از قبل ساختم و تو لایه کار گذاشتم

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

یعنی شما توی فیلد ax اومدید لینک عکس رو قرار دادید که دانلود بشه؟

بعد فقط هر کدوم از عکس هارو که خواستید نسبت به ID اون عکس بیاد عکس رو دانلود کنه و توی ImageView نمایش بده ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام مجدد خیر بنده خود دیتابیس رو دانلود میکنم که تو عکس ها کار گذاشته شده
یعنی خود عکس ها تو دیتابیس هستن
و میخوام که پس از دانلود عکسی که داخل دیتابیس هست رو تو ایمیج ویویی که از قبل ساختم پیاده کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوباره

بنظر من عکس هارو یه جایی اپلود کنین و اسمشونو تو دیتابیس بزارین و تو بیسیک بیاین اونو دانلود کنین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب مشکل من دقیقا همینجاست که میخوام  کاربر نتونه  هیچ گونه کار رو کپی برداری کنه

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

ولی اینطور احتمال این که کاربر عکس رو پیدا کنه خیلی کمه
روش های دیگرو هم امتحان کردم ولی هیچ کدوم قد این راحت و ایمن نیستن

 

 

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیتابیسی که دانلود میکنید توش عکس هم هست که توی فیلد مخصوص عکس به صورت blob وارد شده ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله دقیقا تو دیتا بیس عکس رو بارگذاری کردم یعنی روی گزینه ی عکس کلیک کردم و عکس رو باز گزاری کردم و سیوش کردم

الانم عکس ها تو ستون value هستن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 دقیقه قبل، ali2016 گفته است :

بله دقیقا تو دیتا بیس عکس رو بارگذاری کردم یعنی روی گزینه ی عکس کلیک کردم و عکس رو باز گزاری کردم و سیوش کردم

الانم عکس ها تو ستون value هستن

ببینید شما اومدید بالا گفتید که Value از نوع Int هست و ax از نوع String

خب در هر صورت اشتباهه چون اولا باید از Blob استفاده کنید که توی بیسیک هم به مشکل برخورد نکنین.

واسه خودن عکس های Import شده از توی خود Database از این روش استفاده میشه :

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

والا من نوشتم ولی فقط عکس اول رو نشون داد و بس

 

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

http://s9.picofile.com/file/8273717842/%D9%81%D8%A7%DB%8C%D9%84.zip.html

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 7 ساعت قبل، ali2016 گفته است :

والا من نوشتم ولی فقط عکس اول رو نشون داد و بس

 

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

http://s9.picofile.com/file/8273717842/%D9%81%D8%A7%DB%8C%D9%84.zip.html

 

مهندس شما قبل اینکه یه پروژه رو واسه اساتید انجمن بزارید اول اسم پروژتون رو نگاه کنید چی گذاشتید بعدش آپلود کنید :praising:

بنده سورستون رو چک کردم به هر حال... عکس شماره 2 و 3 رو از دیتابیس حذف کردم و خودم دو تا عکس دیگه به جاشون گذاشتم

هیچ مشکلی نداشت و عکس هارو کامل نشون میداد !!!

مشکل از عکس هاتون هستش انگار

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لازم به ذکر است که ستون aks رو از استرینگ به blod تبدیل کردم ولی بازم این همین خطا هارو داد

 

بنظرم هرچی که لازم بودو گفتم

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تیبل TBL وجود نداره فکر کنم

 

اگه وجود داره دیتا برنامه رو پاک کنید و مجددا برنامه رو باز کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...