2010-09-30 20 views
7

Uygulamamda bir şey buldum. Ben bir sütun, bir tablo type saklamalısınız tamsayılar adlandırılmış oluşturuldu:Tamsayı sütun depoları içeren SQLite tablosu dize

db.execSQL("CREATE TABLE " + CellColumns.TABLE + " (" 
    + CellColumns._ID + " INTEGER PRIMARY KEY," 
    + CellColumns.TYPE + " INTEGER," // <-- this 
    + CellColumns.CELL_ID + " INTEGER," 
    + CellColumns.CITY_ID + " INTEGER," 
    + CellColumns.LOAD + " INTEGER," 
    + CellColumns.ORIENTATION + " INTEGER);"); 

Okuma:

String type = c.getString(c.getColumnIndex(CellColumns.TYPE)); 

Ama nedense hep sorunsuz içine mağaza dizeleri (bu sütun gerekiyordu unuttum görünüyor tamsayılar için). Ayrıca bir sorgu ile dizeleri okuma çalışır. Bir sütunun bu dinamik "tip dökümü" bir sqlite özelliğidir mi? here itibaren

cevap

14

:

Çoğu SQL veritabanı motorlar (bildiğimiz kadarıyla SQLite dışındaki her SQL veritabanı motoru,) statik, sert yazarak kullanır. Statik tipleme ile, bir değerin veri türü kendi konteyneri tarafından belirlenir - değerin saklandığı özel sütun.

SQLite, daha genel bir dinamik tip sistemi kullanır. SQLite'de, bir değerin veri türü, kendi kabıyla değil, değerin kendisi ile ilişkilendirilir. SQLite dinamik tip sistemi, statik olarak yazılan veritabanlarında çalışan SQL deyiminin SQLite'de aynı şekilde çalışması gerektiği anlamında, diğer veritabanı motorlarının daha yaygın statik tip sistemleri ile geriye dönük olarak uyumludur. Ancak, SQLite'deki dinamik yazım, geleneksel rijit olarak yazılan veritabanlarında mümkün olmayan şeyleri yapmasına izin verir.

Evet, bu bir sqlite özelliğidir. Bağladığım sayfanın tamamını okuyun ve dikkatlice okuyun :)

+0

Bunu çok uzun zaman önce yaptığımı düşündüm. Teşekkür ederim! – WarrenFaith