SORU
17 HAZİRAN 2010, PERŞEMBE


Nasıl bir tabloya Android SQLite veritabanı içinde olup olmadığını kontrol eder?

Ben bir android uygulaması ihtiyaçları için onay varsa zaten bir kayıt veritabanı, ve değilse, süreç bazı şeyler ve sonunda takın, ve sadece okuma verileri veritabanından verileri var. Ben kullanarak bir alt SQLiteOpenHelper oluşturmak ve bir yeniden yazılabilir örneği SQLiteDatabase, düşündüm otomatik olarak ilgilendi oluşturma tablo ise yaramadı zaten var (beri kod da bunu mu onCreate(...) yöntem).

Ancak, ne zaman bir masa DEĞİL, henüz var olmayan ve ilk yöntem koştu üzerine SQLiteDatabase nesnesi var. bir arama sorgusu(...), benim logcat gösterir bir hata "I/Veritabanı(26434): sqlite döndü: hata kodu = 1, msg = böyle bir tablo: Application Data", ve emin yeterli, Application Data tablo değil varlık yarattı.

Neden herhangi bir fikir?

Aradığım da bir yöntem için test tablo var (çünkü eğer değil, verilerin kesinlikle değil, ve okumak kadar yazmak için, hangi görünüyor tablo oluşturmak için düzgün), ya da bir şekilde emin olmak için alır yarattı, ve sadece boş zaman için İlk Çağrı için sorgu(...)

EDİT

CEVAP
22 EKİM 2011, CUMARTESİ


Şunu deneyin:

public boolean isTableExists(String tableName, boolean openDb) {
    if(openDb) {
        if(mDatabase == null || !mDatabase.isOpen()) {
            mDatabase = getReadableDatabase();
        }

        if(!mDatabase.isReadOnly()) {
            mDatabase.close();
            mDatabase = getReadableDatabase();
        }
    }

    Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '" tableName "'", null);
    if(cursor!=null) {
        if(cursor.getCount()>0) {
                            cursor.close();
            return true;
        }
                    cursor.close();
    }
    return false;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011
  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009
  • stokelycalm

    stokelycalm

    28 Aralık 2010