S
stikker
Neues Mitglied
- 2
Hallo, ich habe folgendes Problem. Ich erstelle eine Datenbank und zur Kontrolle möchte ich die in anderes Verzeichnis verschieben, da man ja nicht ohne weiteres an die Datenbanken ran kommt.
Wenn ich meinen Code starte kommt folgendes:
D/INFO: Helper hat die Datenbank: testdb.db erzeugt.
D/KEINE DB !!!: KEINE DB !!!
D/DURCH !!!: DURCH !!!!
Sprich, der ist der Meinung, dass die Datenbank erstellt wurde, aber zum kopieren ist sie doch nicht da.
Wo liegt der Fehler ?
package com.example.dbtest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class MainActivity extends AppCompatActivity {
SQLiteServer_user sqLiteServerUser;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sqLiteServerUser = new SQLiteServer_user(MainActivity.this);
try {
File backupDB = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "my_data_backup.db");
File currentDB = getDatabasePath("testdb.db");
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Log.d("DONE !!!", "DONE !!!");
} else {
Log.d("KEINE DB !!!", "KEINE DB !!!");
}
} catch (IOException e) {
Log.d("FEHLER !!!", "FEHLER !!!!");
}
Log.d("DURCH !!!", "DURCH !!!!");
}
}
class SQLiteServer_user extends SQLiteOpenHelper {
private static final String DatabaseName = "testdb.db";
SQLiteServer_user(Context context) {
super(context, DatabaseName, null, 1);
Log.d("INFO", "Helper hat die Datenbank: " + getDatabaseName() + " erzeugt.");
}
@override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String createTable = "CREATE TABLE user (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"datum TEXT);";
sqLiteDatabase.execSQL(createTable);
}
@override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
Wenn ich meinen Code starte kommt folgendes:
D/INFO: Helper hat die Datenbank: testdb.db erzeugt.
D/KEINE DB !!!: KEINE DB !!!
D/DURCH !!!: DURCH !!!!
Sprich, der ist der Meinung, dass die Datenbank erstellt wurde, aber zum kopieren ist sie doch nicht da.
Wo liegt der Fehler ?
package com.example.dbtest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class MainActivity extends AppCompatActivity {
SQLiteServer_user sqLiteServerUser;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sqLiteServerUser = new SQLiteServer_user(MainActivity.this);
try {
File backupDB = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "my_data_backup.db");
File currentDB = getDatabasePath("testdb.db");
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Log.d("DONE !!!", "DONE !!!");
} else {
Log.d("KEINE DB !!!", "KEINE DB !!!");
}
} catch (IOException e) {
Log.d("FEHLER !!!", "FEHLER !!!!");
}
Log.d("DURCH !!!", "DURCH !!!!");
}
}
class SQLiteServer_user extends SQLiteOpenHelper {
private static final String DatabaseName = "testdb.db";
SQLiteServer_user(Context context) {
super(context, DatabaseName, null, 1);
Log.d("INFO", "Helper hat die Datenbank: " + getDatabaseName() + " erzeugt.");
}
@override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String createTable = "CREATE TABLE user (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"datum TEXT);";
sqLiteDatabase.execSQL(createTable);
}
@override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}