Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Android database filedan o`qish

+5 ovoz
89 marta ko‘rilgan
so‘radi 13 yanvar, 17 Faxriddin (823 bal)

Men Androidda baza bilan bog'liq ish qilayotgandim. Menda "malumot.db" sqlite fayl assets da turibdi. 

Uni qanday DBHelper classda o'qib olishim mumkun?

1 ta javob

+3 ovoz
javob berdi 13 yanvar, 17 Saidolim (3,566 bal)
tanlangan 30 yanvar, 17 Faxriddin
 
Eng yaxshi javob

Men bunday hal qilgan edim,

Kopmyuterimda SQLiteBrowser programmasi yordamida baza yasadim.
File ni assets katalogiga saqladim.
Keyin programma birinchi marta ishga tushganida, bu baza file ni telefon xotirasiga o`tkazdim

public void initialise() {
    if (mInstance == null) {
        if (!checkDatabase()) {
            copyDataBase();
        }
        mInstance = new AssetDatabaseOpenHelper(mContext, null, DATABASE_VERSION);
        mSqliteDb = mInstance.getWritableDatabase();
    }
}

va quyidagicha nusxaladim

private static void copyDataBase() {

    try {
        // Telefon xotirasidan bazani ishlatish uchun ochamiz
        InputStream myInput = mContext.getAssets().open(DATABASE_NAME);

        // bo`sh bazaning joylashgan katalogi (path)
        String outFileName = getDatabasePath();

        // Agar katalog/yo`l hali yasalmagan bo`lsa, uni yasab olamiz
        File f = new File(mContext.getApplicationInfo().dataDir + DB_PATH_SUFFIX);
        if (!f.exists())
            f.mkdir();

        // Output sream shaklida bo`sh bazani ochib olamiz
        OutputStream myOutput = new FileOutputStream(outFileName);

        // har bir byte ni inputfile dan output file ga tashlab chiqamiz.
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, length);
        }

        // hamma stream larni yopib chiqamiz.
        myOutput.flush();
        myOutput.close();
        myInput.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

checkDatabase() - bu talefonning o`zida mavjud bazaga ulanib ko`radi. Agar ulana olmasa, demak hali baza yasalmagan bo`ladi.

getDatabasePath() - esa o`zini funksiyasi (Hujjat)

izoh qoldirdi 13 yanvar, 17 oakrom (389 bal)
checkDatabase() da nimani tekshiryapsiz? Kodi bormi?
izoh qoldirdi 13 yanvar, 17 Faxriddin (823 bal)
getDatabasePath(); bu siz o'zingiz yaratgam metodmi?

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...