Z 
		
				
				
			
		zumafx
Fortgeschrittenes Mitglied
- 58
 
Moin 
Meine App macht mittlerweile, was sie soll und ich kann Daten in der DB speichern und auslesen.
Der Übersichtlichkeit halber habe ich alle Datenbankmethoden in eine
eigene Klasse (DbMethoden) ausgelagert.
Bei Aufruf einer Methode gebe ich dann neben den Daten als Parameter
	
	
	
		
mit. Soweit so gut.
Nun wollte ich beim evtl. Updaten die Daten sichern, update machen und dann die Daten wieder einfügen.
Das habe ich wie folgt versucht:
DbHandlerHelper.java
	
	
	
		
Mein Problem: Die Parameter connection und database, wie muss ich die benutzen ? 
Ich muss irgendwie "sich selbst" übergeben ?
Ich versteh da noch nicht so wirklich, wie das abläuft in Android/Java und würde mich sehr freuen,
wenn mir jemand sagt, wie/welche Parameter ich angeben muss und
das warum wäre noch ein nettes Schmankerl dazu.
Vielen Dank
				
			Meine App macht mittlerweile, was sie soll und ich kann Daten in der DB speichern und auslesen.
Der Übersichtlichkeit halber habe ich alle Datenbankmethoden in eine
eigene Klasse (DbMethoden) ausgelagert.
Bei Aufruf einer Methode gebe ich dann neben den Daten als Parameter
		Code:
	
	Context con,
SQLiteDatabase connection,
SQLiteOpenHelper database
	mit. Soweit so gut.
Nun wollte ich beim evtl. Updaten die Daten sichern, update machen und dann die Daten wieder einfügen.
Das habe ich wie folgt versucht:
DbHandlerHelper.java
		Code:
	
	public class DbHandlerHelper extends SQLiteOpenHelper {
    private Context context;
    DbHandlerHelper(Context context) {
        super(context,
                context.getResources().getString(R.string.DATABASE_NAME),
                null,
                Integer.parseInt(context.getResources().getString(R.string.DATABASE_VERSION)));
        this.context = context;
    }
    // Tabellen erzeugen
    @Override
    public void onCreate(SQLiteDatabase db) {
        for(String sql : context.getResources().getStringArray(R.array.create_Db))
            db.execSQL(sql);
    }
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Alte Daten sichern
        List<DatenA> a = DbMethoden.getAlleDatenA(context, connection, database);
        List<DatenB> b = DbMethoden.getAlleDatenB(context, connection, database);
        db.execSQL("DROP TABLE IF EXISTS " + context.getResources().getString(R.string.TABLE_NAME_A));
        db.execSQL("DROP TABLE IF EXISTS " + context.getResources().getString(R.string.TABLE_NAME_B));
        onCreate(db);
        // Alte Daten wieder einlesen
        for (int i = 0; i <= a.size()-1; i++) {
            DbMethoden.addDatenAToDb(context, connection, database, a.get(i));
        }
        for (int i = 0; i <= b.size()-1; i++) {
            DbMethoden.addDatenBToDb(context, connection, database, b.get(i));
        }
    }
	Ich muss irgendwie "sich selbst" übergeben ?
Ich versteh da noch nicht so wirklich, wie das abläuft in Android/Java und würde mich sehr freuen,
wenn mir jemand sagt, wie/welche Parameter ich angeben muss und
das warum wäre noch ein nettes Schmankerl dazu.
Vielen Dank