1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

SQLite - Datenbankfehler

Dieses Thema im Forum "Programmierung" wurde erstellt von Lanzettlich, 2. November 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.

  1. Lanzettlich
    Offline

    Lanzettlich Minecrafter

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Hallo!

    Ich habe mir auf YouTube das Tutorial von Benni1000 zu SQLite angesehen: http://www.youtube.com/watch?v=Csab5Qr_p_0&feature=plcp.

    Wenn ich einen Text über /add TEXT eintrage, wird der Text nicht in der testdb.db gespeichert.
    Das Auslesen funktioniert deshalb auch nicht.
    Fehlermeldung in der Console bei add:
    "2012-11-02 10:48:48 [WARNING] Testplugin[SQLite] Query failed: no such table: test"
    Fehlermeldung bei get:
    "2012-11-02 10:48:53 [WARNING] Testplugin[SQLite] Query failed: [SQLITE_ERROR] SQL error or missing database (no such table: test)"

    Ich bin das Skript mehrmals auf Fehler durchgegangen, habe aber nichts gefunden :/
    Code:
    Code (Text):
    1.     private SQLite sqlite;  static final Logger log = Bukkit.getLogger();
    2.     public void onDisable()
    3.     {
    4.         System.out.println("[Testplugin] disabled");
    5.     }
    6.     public void onEnable()
    7.     {
    8.         sqlite = new SQLite(log, "Testplugin", "testdb", "plugins/Testplugin");
    9.         if(!sqlite.checkTable("test"))
    10.         {
    11.             sqlite.createTable("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT,userText TEXT);");
    12.         }
    13.        
    14.         System.out.println("[Testplugin] enabled");
    15.     }
    16.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
    17.     {
    18.         if(cmd.getName().equalsIgnoreCase("add"))
    19.         {
    20.             if(args.length < 1)
    21.             {
    22.                 sender.sendMessage("Correct usage: /add TEXT");
    23.             } else {
    24.                 String message = "";
    25.                 for(String s : args)
    26.                 {
    27.                     message = message + s + " ";
    28.                 }
    29.                 message = message.replace("'", "");
    30.                 sqlite.query("INSERT INTO  test (userText) VALUES ('"+message+"');");
    31.                 sender.sendMessage("Danke für deinen Eintrag");
    32.             }
    33.         }
    34.         if(cmd.getName().equalsIgnoreCase("get"))
    35.         {
    36.             if(args.length < 1)
    37.             {
    38.                 sender.sendMessage("/get ID");
    39.             } else {
    40.                 try
    41.                 {
    42.                     int id = Integer.parseInt(args[0]);
    43.                     ResultSet result = sqlite.query("SELECT * FROM test WHERE id = " + id);
    44.                     if(result != null)
    45.                     {
    46.                         try
    47.                         {
    48.                             result.next();
    49.                             String text = result.getString("userText");
    50.                             sender.sendMessage("Inhalt von " + id + " ist: " + text);
    51.                             result.close();
    52.                             return true;
    53.                         }catch(SQLException e)
    54.                         {
    55.                            
    56.                         }
    57.                        
    58.                     }
    59.                 } catch(Exception e)
    60.                 {
    61.                     sender.sendMessage("Das ist keine Nummer!");
    62.                 }
    63.             }
    64.  
    65.  
    66.         }
    67.         return true;
    68.     }
     
  2. Benni1000
    Offline

    Benni1000 Ehemaliges Teammitglied Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.397
    Ich sehe da eigentlich auch keinen Fehler.
    Versuch mal den Server ganz zu stoppen, und ihn dann nochmal hochzufahren.
    Er hat anscheinend die Tabelle "test" nicht anlegen können.
     
  3. Crafter6432
    Offline

    Crafter6432 Workaholic

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    681
    Mach das checktable mal weg, da du eh ein "IF NOT EXIST" verwendest.
     
  4. Lanzettlich
    Offline

    Lanzettlich Minecrafter

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Geht noch immer nicht, das checktable habe ich weggemacht und den Server mehrmals neu gestartet.
    Liegt der Fehler vielleicht an den Imports?
    die SQLibrary.jar habe ich importiert, und den entpackten Ordner der SQLibrary.
    http://www10.pic-upload.de/03.11.12/vve6l6sd3mu.png
     
    Zuletzt bearbeitet: 3. November 2012
  5. Benni1000
    Offline

    Benni1000 Ehemaliges Teammitglied Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.397
    Ich glaube da passt alles, lade mal das ganze projekt als .zip gepackt hoch und poste den link hier rein.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.