Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Datenbank im Ordner assets?

Das Thema "Datenbank im Ordner assets?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 22.10.2011, 13:11   #1 (permalink)
Neuer Benutzer

Registriert seit: 22.10.2011
Beiträge: 3
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard Datenbank im Ordner assets?

Hallo Zusammen,

aktuell arbeite ich mich in die Android-App-Entwicklung ein, indem ich versuche ein von mir erstelltes Java-Prog auf Android lauffähig zu machen. Das gemeinte Java-Programm enthält eine MS-Access-Datenbank und soweit ich weiß sind Access-Datenbanken nicht Android-Konfrom, sodass ich im vorfeld schon mal die Datenbank mit SQLite realisert habe.

Nun zu meinem vorgehen! Ich habe die SQLite Datenbank in den Ordner "assets", zu finden im Applications-Dateisystem, reinkopiert und versucht diese über folgendem Code anzuspielen

Code:
                public class Conn_db {
                private static Connection con;

                public Bank hole_bank_daten(String vorname, String name) throws Exception{

                Class.forName("SQLite.JDBCDriver");
		DriverManager.getConnection("jdbc:sqlite:/assets/datenbank.sqlite");
		PreparedStatement stmt;
		stmt = con.prepareStatement("SELECT * FROM Daten WHERE" + strWhere);
		stmt.setString(1, vorname);
		if (b_ort) stmt.setString(2, nachname);
		ResultSet rs = stmt.executeQuery();
                .....

Wenn ich es compiliere, erhalte die Meldungen:

10-22 11:08:35.261: WARN/System.err(295): java.sql.SQLException: java.sql.SQLException: SQLite.Exception: unknown error in open
10-22 11:08:35.281: WARN/System.err(295):     at SQLite.JDBCDriver.connect(JDBCDriver.java:83)
10-22 11:08:35.281: WARN/System.err(295):     at java.sql.DriverManager.getConnection(DriverManager.java:191)
10-22 11:08:35.291: WARN/System.err(295):     at java.sql.DriverManager.getConnection(DriverManager.java:154)
10-22 11:08:35.291: WARN/System.err(295):     at db_connection.Conn_db.<init>(Conn_db.java:49)
Leider funzt es nicht wie ich es gern hätte, würde mich auf nützliche Tipps sehr freuen!

Viele Grüße
jWoz ist offline   Mit Zitat antworten
Alt 22.10.2011, 13:22   #2 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Datenbank im Ordner assets?

> DriverManager.getConnection("jdbc:sqlite:/assets/datenbank.sqlite");
Das "/assets/datenbank.sqlite" kann in keinem Fall funktionieren - mit dem "leading" / bewegst du dich ja ins Root-Verzeichnis - und da gibts bestimmt keinen "assets" Ordner...

Ne Anleitung findest du z.B. hier.
Wenn deine Datenbank größer als 1MB ist, dann kopier sie in den "raw" Ordner und gib ihr eine Dateinamenerweiterung, die auf komprimierten Inhalt hindeutet. Also z.B. "meinedatenbank.jpg" oder .jet - denn sonst meckert Android, dass unkomprimierte Inhalte über 1MB nicht erlaubt sind.
__________________
Meine App: Die Cocktail App für Android™ - jetzt im Market (PRO)
sixi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei sixi für diesen Beitrag:
jWoz (24.10.2011)
Alt 22.10.2011, 13:53   #3 (permalink)
Neuer Benutzer

Registriert seit: 22.10.2011
Beiträge: 3
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Datenbank im Ordner assets?

Hi Sixi,

danke für den schnellen Tipp! Ich habe nun den Ordner "raw" in res erstellt und mit einer Dateinanemerweiterung ergänzt.
Den Code habe ich entsprechend angepasst und bekomme aber leider folgende Fehlermeldung:#

Code:
Class.forName("SQLite.JDBCDriver");
DriverManager.getConnection("jdbc:sqlite:res/raw/datenbank.sqlite");

10-22 11:47:11.961: WARN/System.err(299): java.sql.SQLException: No suitable driver
10-22 11:47:12.001: WARN/System.err(299):     at java.sql.DriverManager.getConnection(DriverManager.java:199)
10-22 11:47:12.011: WARN/System.err(299):     at java.sql.DriverManager.getConnection(DriverManager.java:154)
10-22 11:47:12.011: WARN/System.err(299):     at db_connection.Conn_db.<init>(Conn_db.java:49)
Hättest du vielleicht eine weitere Idee ?

Viele Grüße
jWoz ist offline   Mit Zitat antworten
Alt 24.10.2011, 19:57   #4 (permalink)
Neuer Benutzer

Registriert seit: 22.10.2011
Beiträge: 3
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Datenbank im Ordner assets?

Das sind die beiden Klassen, die ich benutze um die Datenbankverbindung aufzubauen.


Activity
Code:


import ce.ge.play.DB;
import ce.ge.play.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Z2Activity extends Activity {
   
	Button button1;
	TextView input1;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final String meineNull="0";
        button1=(Button)findViewById(R.id.button1);
        input1=(TextView)findViewById(R.id.editText1);
        button1.setOnClickListener((OnClickListener) this);
        input1.setText(meineNull);
    }
    public void onClick(View v) {
    	
    	DB d = new DB();
    	try {
			d.openDataBase();
		} catch (Exception e) {
			e.printStackTrace();
		}
		input1.setText("Datenbankverbindung wurde aufgebaut");
    }
}

Datenbankverbindung:
Code:
import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DB  {
	    private static String DB_PATH = "assets/";
	    private static String DB_NAME = "Daten.sqlite";
	    private SQLiteDatabase myDataBase;
	
	    	 
	        public void openDataBase() throws SQLException{
	        	 
	        	//Open the database
	            String myPath = DB_PATH + DB_NAME;
	        	myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

	        }
}
Freue mich auf Tipps,
viele Grüße
jWoz ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
3. Sets scripts assets: ENABLED?!...find ich nicht thrash001 Root / Hacking / Modding für Sony Ericsson Xperia Arc 4 12.08.2011 11:13
Mehre Daten in SQL-Datenbank| einzelne Zeile aus Datenbank löschen Nivel Android App Entwicklung 17 23.07.2011 13:41
SQlite : Datenbank verschlüsselt oder keine gültige Datenbank RED-BARON Android App Entwicklung 0 07.04.2011 11:20
Musikplayer - bestimmte Ordner sollen nicht in Datenbank aufgenommen werden JuppCappellmann Motorola Defy Forum 1 22.11.2010 22:46
mit assets Ordner arbeiten jim Android App Entwicklung 3 12.08.2010 16:28




Du liest gerade: "Datenbank im Ordner assets?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.