Jetzt registrieren » Login
« Login

Passwort vergessen?

Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » No such Table found! - dann erstell doch eine!
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

No such Table found! - dann erstell doch eine!

Um aktiv im Android Forum teilnehmen zu können, musst Du Dich bei AndroidPIT registriert haben.

User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

No such Table found! - dann erstell doch eine!
verfasst am 30.08.2010 13:23:22
Ich entwickle an einem Spiel dass wohl bald in die beta-Phase kommt und bereit ist veröffentlicht zu werden!
ich habe eine Datenbank erstellt und mein Punkte wurden schön brav gespeichert, doch irgentwann bekam ich einen Force close und meine Liebe Logcat spuckte mir folgendes aus:

108-30 13:09:35.475: ERROR/Database(9173): Failure 1 (no such table: Scores) on 0x2eaaf0 when preparing 'INSERT INTO Scores (name, score) VALUES ('leon','404');'.
208-30 13:09:35.475: ERROR/AndroidRuntime(9173): FATAL EXCEPTION: main
308-30 13:09:35.475: ERROR/AndroidRuntime(9173): android.database.sqlite.SQLiteException: no such table: Scores: INSERT INTO Scores (name, score) VALUES ('leon','404');
408-30 13:09:35.475: ERROR/AndroidRuntime(9173): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
508-30 13:09:35.475: ERROR/AndroidRuntime(9173): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1814)
608-30 13:09:35.475: ERROR/AndroidRuntime(9173): at com.shitbox.dblaster.dGame.InsertToDB(dGame.java:906)
708-30 13:09:35.475: ERROR/AndroidRuntime(9173): at com.shitbox.dblaster.dGame$1.onClick(dGame.java:896)
808-30 13:09:35.475: ERROR/AndroidRuntime(9173): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
908-30 13:09:35.475: ERROR/AndroidRuntime(9173): at android.os.Handler.dispatchMessage(Handler.java:99)
1008-30 13:09:35.475: ERROR/AndroidRuntime(9173): at android.os.Looper.loop(Looper.java:144)
1108-30 13:09:35.475: ERROR/AndroidRuntime(9173): at android.app.ActivityThread.main(ActivityThread.java:4937)
1208-30 13:09:35.475: ERROR/AndroidRuntime(9173): at java.lang.reflect.Method.invokeNative(Native Method)
1308-30 13:09:35.475: ERROR/AndroidRuntime(9173): at java.lang.reflect.Method.invoke(Method.java:521)
1408-30 13:09:35.475: ERROR/AndroidRuntime(9173): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
1508-30 13:09:35.475: ERROR/AndroidRuntime(9173): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
1608-30 13:09:35.475: ERROR/AndroidRuntime(9173): at dalvik.system.NativeStart.main(Native Method)

Merkwürdig denke ich mir es heißt ja openOrCreate
aber es kann keine table gefunden werden und am Code habe ich auch nichts geändert
1private void erstelleDBUndDBTabled()
2 {
3 myDB = mContext.openOrCreateDatabase(MY_DATABASE_NAME, Context.MODE_PRIVATE, null);
4 myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DATABASE_TABLE
5 + " (_id integer primary key autoincrement, name varchar(100), score varchar(100))"
6 +";");
7 }

1InsertToDB(Name.getText().toString(), Score.getText().toString());

1public void InsertToDB(String Name, String Score)
2 {
3 SQLiteDatabase myDB = null;
4 try {
5 myDB = mContext.openOrCreateDatabase(ColorBlasterGame.MY_DATABASE_NAME, Context.MODE_PRIVATE, null);
6 myDB.execSQL("INSERT INTO "+ColorBlasterGame.MY_DATABASE_TABLE+" (name, score) "
7 +"VALUES ('"+Name+"','"+Score+"');");
8 }
9 finally
10 {
11 if (myDB != null)
12 myDB.close();
13 }
14 }
Ich seh ja nix was da falsch wäre!

Danke an den der es erkennt und an alle die es versuchen

Ps:Nicht so streng ich bin der Neue

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

RE: No such Table found! - dann erstell doch eine!
verfasst am 05.09.2010 20:18:43 (über AndroidPIT-App)
nobody?
ich habe nichts falschgemacht eigentlich

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

RE: No such Table found! - dann erstell doch eine!
verfasst am 05.09.2010 22:48:04 (über AndroidPIT-App)
okay dank root habe ich auf meinem Handy die Datenbank besteht aber die Tabelle nicht aber die müsste doch durch das oncreate auch erstellt werden !

jetzt was?

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Manfred Z.de

Status: Administrator

Rang: Android Gottheit

Beiträge: 4.146

Eintrittsdatum: 03.06.2009

RE: No such Table found! - dann erstell doch eine!
verfasst am 05.09.2010 23:06:27
Hallo L3322,

das pushen deines Eintrags bring dir hier gar nichts.
Wenn es ein Entwickler ließt wird er dir helfen.

Bitte unterlasse das pushen!

Gruß Manfred

-----
Die kleine Kneipe in unserer Straße

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

RE: No such Table found! - dann erstell doch eine!
verfasst am 05.09.2010 23:37:12 (über AndroidPIT-App)
sorry bin neu!
ich werde es in Zukunft unterlassen

lg l3322

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Mac Systemsde

Rang: Android SilverSenior

Beiträge: 966

Eintrittsdatum: 21.06.2009

RE: No such Table found! - dann erstell doch eine!
verfasst am 06.09.2010 12:27:26
Mein Tip: SQLiteManager installieren (Firefox) die DB runterladen und schritt für schritt mal nachprüfen ob dein Code überhaupt richtig durchlaufen wird.

-----
Kite-fast.de - Chillen - PKRA 2010 Java MP3 Player - Wind Mate APP

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

RE: No such Table found! - dann erstell doch eine!
verfasst am 06.09.2010 13:52:30 (über AndroidPIT-App)
okay ich habe es jetzt anders gelöst die Datenbank wird schon im Menü d.h. ganz am Anfang des Spiels erstellt! (und da geht es warum auch immer) und in der anderen activity verwende ich halt dann das insert into...

danke

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
L3322de

Rang: Android Prof

Beiträge: 465

Eintrittsdatum: 28.08.2010

RE: No such Table found! - dann erstell doch eine!
verfasst am 06.09.2010 13:52:59 (über AndroidPIT-App)
okay ich habe es jetzt anders gelöst die Datenbank wird schon im Menü d.h. ganz am Anfang des Spiels erstellt! (und da geht es warum auch immer) und in der anderen activity verwende ich halt dann das insert into...

danke

-----
"Hard work beats talent, when talent fails to work hard"

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Mac Systemsde

Rang: Android SilverSenior

Beiträge: 966

Eintrittsdatum: 21.06.2009

RE: No such Table found! - dann erstell doch eine!
verfasst am 06.09.2010 15:33:59
Ich weiß zwar das in jeden Android Buch die Tables irgendwo wild erzeugt werden aber so ist das wohl leider nun mal. Dabei stellt das SDK Klassen bereit die einem das Leben deutlich vereinfachen:
1/**
2 * Creates or updates the underlying SQLite Database.
3 *
4 * @author mac
5 * @version $Id: Database.java 545 2010-07-17 13:48:52Z mac $
6 *
7 */
8public final class Database extends SQLiteOpenHelper
9{
10
11 private final static String LOG_TAG = Database.class.getSimpleName();
12
13 private final static String DATABASE_NAME = "datenbankname.db";
14
15 private final static int VERSION = 3;
16
17 private final Context context;
18
19 /**
20 *
21 * @param _context
22 */
23 public Database(final Context _context)
24 {
25 super(_context, DATABASE_NAME, null, VERSION);
26 context = _context;
27 }
28
29 /*
30 * (non-Javadoc)
31 *
32 * @see
33 * android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite
34 * .SQLiteDatabase)
35 */
36 @Override
37 public void onCreate(final SQLiteDatabase database)
38 {
39 if (Logging.isEnabled)
40 {
41 Log.d(LOG_TAG, "onCreate Database");
42 }
43
44 ... hier erzeugst du erstmalig die DB
45
46 }
47
48
49
50 /*
51 * (non-Javadoc)
52 *
53 * @see
54 * android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite
55 * .SQLiteDatabase, int, int)
56 */
57 @Override
58 public void onUpgrade(final SQLiteDatabase database, final int oldVersion, final int newVersion)
59 {
60 if (Logging.isEnabled)
61 {
62 Log.d(LOG_TAG, "Upgrade Database from version " + oldVersion + " to " + newVersion);
63 }
64
65
66 // wird durchlaufen wenn die Versionsnummer geändert wurde
67
68 }

Das heißt in der Activity die in der XML als Main deklariert wurde erzeugst du einfach eine Instanz dieser Klasse, fertig!
Den zugriff selbst würde Ich ebenfalls in Methoden auslagern damit das ganze ein wenig Struktur bekommt!


- Mac

-----
Kite-fast.de - Chillen - PKRA 2010 Java MP3 Player - Wind Mate APP

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » No such Table found! - dann erstell doch eine!
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

AndroidPIT unterstützen

Gefällt Dir AndroidPIT? Wir freuen uns, wenn Du uns unterstützt. Wie das geht? Klicke einfach auf die unten stehenden Links.

Weiterempfehlen

Gefällt Dir AndroidPIT? Dann empfiehl uns bitte weiter!

Fragen / Hilfe

Du hast Fragen zu AndroidPIT oder willst noch mehr erfahren? Diese Links helfen Dir vielleicht weiter...

  Du liest gerade: No such Table found! - dann erstell doch eine! - Android Forum - AndroidPIT. Alle Zeitangaben in UTC+01:00. Es ist jetzt 12:58 Uhr.