Soru & Cevap

Cursor a birden cok query ekleme

30.07.2015 - 03:07

Merhabalar. Kod aşagıda inceleme şansınız olursa, her select sorgumla query çekiyorum ve Cursora atıyorum ardından while ile ekrana bastırıyorum. Fırmalar düşünün ve firmaların alt markalarını düşünün. Ekrarn çıktımın hem firmamalara gore hemde firmaların alt markalarına göre alfabetik gelmesini istiyorum. şuan ki kodumuz sadece firmaların alt markalarını alfabeti getiriyor. İstediğimiz Fırmaların da alfabetik sıralı olması. Bu konuda yardımcı olabilecek varsa makbule geçer.    

 

Acaba Querilerimi nasıl muhafaza ederim de ekrana toplu halde yazdırırım. Cursorlar da dizi mantıgı varmıdır ?

 

private ArrayList<CompanyMarka> markaninkilericinoldugunuolustur(
            ArrayList<CompanyMarka> liste) {
        ArrayList<CompanyMarka> listee = new ArrayList<CompanyMarka>();
        SQLiteDatabase db = this.getReadableDatabase();
        listee = liste;
        for (CompanyMarka companyMarka : listee) {

            try {
                String select =
                // "SELECT * FROM " + TABLE_COMPANYMARKA_LIST
                // + " WHERE 1=1";
                "SELECT " + C_CINSIYET + " FROM " + TABLE_COMPANYS + " WHERE "
                        + C_MARKA + " = '" + companyMarka.getComp_marka() + "'"
                        + " AND " + C_FIRMA + " = '"
                        + companyMarka.getComp_name() + "' GROUP BY "
                        + C_CINSIYET + " ORDER BY "+C_MARKA; 
                
                Log.e(LOG, select);
                Log.e(LOG, "    **********************************766    ");
                Cursor c = db.rawQuery(select, null); // burda her querimi c ye atayıp while ile ekrana yazdırıyorum
                c.moveToFirst();    //This method will return false if the cursor is empty
                Boolean finished = false;
                while (finished == false) {

                    companyMarka.addmarkaUser(c.getString(c
                            .getColumnIndex(C_CINSIYET))); 
                    if (c.isAfterLast() == false) {
                        c.moveToNext();

                    } else {
                        finished = true;
                        Log.e(LOG, "    ***************************779    ");

                    }

                }
                c.close();

            } catch (Exception e) {
            }

        }
        return listee;

    }

8 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-12669-1395424351.jpg
samirsamedow
30.07.2015 - 04:24

her select bir string olduguna göre onu array liste tuttum ama daha sonra forun dısına cıktıgım için companyMarka localdec cıktı ... çözüm?
 

private ArrayList<CompanyMarka> markaninkilericinoldugunuolustur(
                ArrayList<CompanyMarka> liste) {
            ArrayList<CompanyMarka> listee = new ArrayList<CompanyMarka>();
            SQLiteDatabase db = this.getReadableDatabase();
            listee = liste;
            ArrayList<String> buyukListe = new ArrayList<String>();
            for (CompanyMarka companyMarka : listee) {
                try {
                    String select =
                    // "SELECT * FROM " + TABLE_COMPANYMARKA_LIST
                    // + " WHERE 1=1";
                    "SELECT " + C_CINSIYET + " FROM " + TABLE_COMPANYS + " WHERE "
                            + C_MARKA + " = '" + companyMarka.getComp_marka() + "'"
                            + " AND " + C_FIRMA + " = '"
                            + companyMarka.getComp_name() + "' GROUP BY "
                            + C_CINSIYET + " ORDER BY "+C_MARKA;
                    Log.e(LOG, select);
                    Log.e(LOG, "    **********************************766    ");
                    buyukListe.add(select);
                }// try sonu
                catch (Exception e) {
                }
            }// for sonu 
            for (String str : buyukListe) {
                Cursor c = db.rawQuery(str, null);
                c.moveToFirst();//This method will return false if the cursor is empty
                Boolean finished = false;
                while (finished == false) {
                    companyMarka.addmarkaUser(c.getString(c
                            .getColumnIndex(C_CINSIYET)));//
                    if (c.isAfterLast() == false) {
                        c.moveToNext();
                    } else {
                        finished = true;
                        Log.e(LOG, "    ***************************779    ");
                    }
                }
                c.close();
            }
            return listee;
        }// method sonu