مشکل با دیتابیس b4a

سوال

با سلام خسته نباشید من سه مشکل داشتم:

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

۲- مشکل دوم اینکه وقتی می خواد متن ها رو و عکس ها رو بخونه ارورOut of Memory Error میده چطور می تونم حلش کنم؟؟؟

۳-وقتی می خوام برنامه رو اجرا کنم کل متن و عکس ها نمیاد هر چی هم سایز اسکرول بالا می ره تغییری نمی کنه

ببخشید که سئوال هام زیاد بود ممنون می شم پاسخ بدید.

فقط اگر لطف به روش ساده بیان کنید ممنون می شم چون بنده خیلی مبتدی هستم.

حل شد 0
, ۱۳۹۵/۶/۲۳ ۱۸:۵۱:۲۴ 2 پاسخ کاربر تازه 0

پاسخ ها ( 2 )

    0
    ۱۳۹۵/۶/۲۴ ۵:۵۳:۰۱

    سلام

    سوال اولیتون رو متوجه نشدم، واضح تر بگید.

    خطای out of memory error موقعی پیش میاد که رم اشباع شده باشه و نکشه، برنامه رو دیباگ کنید و ببینید کدوم خط برنامه خطا میده.

    احتمالا از تعداد تصاویر زیادی تو برنامه(یک اکتویتی) استفاده کردید و باعث به وجود اومدن این مشکل شده، تصاویر رو کم کنید و دوباره کامپایل کنید.

    موفق باشید

      0
      ۱۳۹۵/۶/۲۴ ۱۰:۵۸:۳۵

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

    1
    ۱۳۹۵/۶/۲۴ ۱۶:۱۶:۰۹

    وقتی میخوایم دیتابیس رو در برنامه فراخوانی کنیم، از کد زیر استفاده می کنیم:
    If File.Exists(File.DirInternal , "beporsam.db") = False ThenFile.Copy(File.DirAssets , "beporsam.db" , File.DirInternal , "beporsam.db")End If
    در کد بالا یک شرط گذاشتیم که اگر فایل beporsam.db در حافظه گوشی وجود داشت در اجرای دوباره برنامه دیگه فایل دیتابیس در برنامه کپی نشه، حالا تا زمانی که میخواید برنامه رو بنویسید و برنامه نهایی نشده دستور if رو بردارید و فقط از کد زیر استفاده کنید:
    File.Copy(File.DirAssets , "beporsam.db" , File.DirInternal , "beporsam.db")

    وقتی if رو بردارید با اجرای دوباره برنامه، فایل دیتابیس دوباره در حافظه گوشی ریخته میشه با اینکار تغییراتی هم که در دیتابیس ایجاد میکنید اعمال میشه

    راهی به ذهنم نمیرسه وجود داشته باشه، تنها راهی که به ذهن میرسه این هست که یا تصاویر رو از آنلاین بگیرید یا هم اینکه حجم تصاویر رو بیارید پایین(برای پایین آوردن حجم تصاویر از نرم افزار Advanced JPEG Compressed استفاده کنید).

    سوال سوم، شاید به دلیل اندازه زیاد تصاویر هست(برنامه رو پیوست کنید)

    بهترین پاسخ

ارسال یک پاسخ