Android sqlight problem always null
Posted
by yoav.str
on Stack Overflow
See other posts from Stack Overflow
or by yoav.str
Published on 2010-06-18T14:10:09Z
Indexed on
2010/06/18
14:13 UTC
Read the original article
Hit count: 292
android
|system.data.sqlite
every time i am using the db its null and i just dont get it i use this code for the SQL when I have quarry :
public class GameSQLHelper {
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra"
};
private static final String DB_PATH = "/countryCityGame/databases/";
private static final String DATABASE_NAME = "events.db";
private static final int DATABASE_VERSION = 1;
private final Context mCtx;
// Table name
public static final String TABLE = "myDataBase";
// Columns
public static final String LETTER = "letter";
public static final String TYPE = "type";
public static final String VALUE = "value";
//my database
SQLiteDatabase myDataBase;
private static class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = null;
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table " + TABLE + "( " + BaseColumns._ID
+ " integer primary key autoincrement, " + LETTER + " text not null, "
+ TYPE + " text not null," + VALUE + " text not null );";
Log.d("EventsData", "onCreate: " + sql);
db.execSQL(sql);
insertValuesToDB(db);
}
private void insertValuesToDB(SQLiteDatabase db) {
if (db == null){
}
else{
db.execSQL("INSERT INTO "
+ TABLE
+ " ("+LETTER+","+ TYPE +"," + VALUE +")"
+ " VALUES ('A', 'country', 'Angola');");
ContentValues initialValues = new ContentValues();
for (int i = 0 ; i < COUNTRIES.length ; i++){
Character tmp = (Character)COUNTRIES[i].charAt(0);
initialValues.put(VALUE, COUNTRIES[i]);
initialValues.put(TYPE, "country");
initialValues.put(LETTER,tmp.toString(tmp));
db.insert(TABLE, null, initialValues);
}
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS notes");
onCreate(db);
}
}
/**
* Constructor - takes the context to allow the database to be
* opened/created
*
* @param ctx the Context within which to work
*/
public GameSQLHelper(Context ctx) {
this.mCtx = ctx;
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion >= newVersion)
return;
String sql = null;
if (oldVersion == 1)
sql = "alter table " + TABLE + " add note text;";
if (oldVersion == 2)
sql = "";
Log.d("EventsData", "onUpgrade : " + sql);
if (sql != null)
db.execSQL(sql);
}
public void openDataBase() throws SQLException{
//Open the database
String myPath = DB_PATH + DATABASE_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}
public boolean existInDataBase(String serchStr ){
Cursor c = null ;
try{
openDataBase();
c = myDataBase.query(true, TABLE, new String[] {TYPE
}, VALUE + "=" + serchStr, null,
null, null, null, null);
}
catch(Exception e){
Log.d("sqlExacption", e.getMessage());
}
if (c == null)
return false;
return true;
}
}
whenever i call this class (i hold an instace of him initialized : mDbHelper = new GameSQLHelper(this); where this is an activity )
i always get my mDbHelper as null how can i change it , its my first time working with sql outside of mysql platform so i am kind of having problmes understanding tje concept , and the android notepad example didnt help me .
© Stack Overflow or respective owner