Announcement

Collapse
No announcement yet.

Dringend Hilfe!! Eintrag in DB klappt nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dringend Hilfe!! Eintrag in DB klappt nicht

    Ich bräuchte dringend Hilfe.
    <BR><BR>
    Ich habe eine Funktion, die in die Datenbank einen Eintrag schreiben soll.
    <PRE>
    public void Lagerplatz_anlegen ()
    {
    try
    {
    String anlegen="INSERT INTO Speicherplatz (Lagerzeile, Etage, Hausnr) " +
    "Values (" +Lagerzeile_neu+", "+Etage_neu+", " +Hausnr_neu+")";
    Statement stmt = con.createStatement ();
    stmt.execute(anlegen);
    stmt.close();
    }
    catch (SQLException exc)
    {
    System.out.println ("Fehler bei Verarbeitung in Lagerplatz_anlegen: " + exc.getMessage());
    }
    }
    </PRE>

    Ich habe kleine Änderungen an meinem Programm vorgenommen, die Hauptsächlich darin bestanden, dass ich zwei Variablen durch eine einzige ersetzt habe. Mit dieser Funktion möchte ich nun in meine Datenbank Einträge in eine Tabelle machen. <BR><BR>

    Das Programm ist fehlerfrei und bis auf diese Funktion macht es auch was es soll. Diese Funktion funktionierte vorher auch einwandfrei, aber jetzt nicht mehr. Bei etwa der Hälfte einzutragenden Daten macht er den Eintrag nicht in die Datenbank. <BR><BR>

    Hat vielleicht jemand einen Tip voran es liegen kann? Mal macht er den Eintrag, mal nicht.
    <BR><BR>
    Grüsse<BR>
    Karen<BR><BR>

  • #2
    Was gibt es denn für eine Fehlermeldung

    Comment


    • #3
      Ich komme nicht in diese catch-Anweisung hinein, das ist nicht das Problem, wo das Problem liegt habe ich schon herausfinden können, und zwar das die Funktion wie im ersten Beitrag zu sehen ist nicht alles in die Datenbank einträgt.<BR><BR>

      Ich versuche das ganz mal ein wenig zu beschreiben: <BR><BR>

      In dieser Datenbank habe ich an einer Tabelle kleine Änderungen vorgenommen. Ich haben die beiden Felder LiRe und Schlucht durch Lagerzeile ersetzt. In meinem Programm habe ich auch die beiden alten Felder herausgenommen und das neue dafür genommen. Soweit auch
      noch keine Problem.
      <BR><BR>
      Mein Programm lief auch vor den Änderungen einwandfrei. Aber nach diesen Änderungen jetzt nicht mehr. Es ist in meinem Programm eine Funktion Lagerplatz_anlegen, die jetzt nicht mehr richtig funktioniert. Ich erhalten eine Protokolldatei mit der ich sehen kann, ob ein Artikel umgelagert werden konnte.
      <BR><BR>
      Das was mich besonders beeindruckt ist, dass es immer abwechselnd ist, das ein Artikel umgelagert werden kann und der danch nicht, der danach wird es wieder und der danach nicht. Das geht also immer abwechselnd. Das ist etwas, dass mich besonders stutzig gemacht hat, dieses abwechseln. Das PRoblem liegt daran, dass eine der Speicherplatz an den dieser Artikel umgelagert werden soll zuvor nicht mit der Funktion Lagerplatz_anlegen in die Datenbank
      eingetragen wurde

      Comment


      • #4
        Das Problem ist, daß die Funktion Statement für SELECT zu verwenden ist.<br>--> Executes an SQL statement that may return multiple results.

        Für DML ist int executeUpdate(String sql) zu verwenden<br>
        -->Executes an SQL INSERT, UPDATE or DELETE statement.

        Alternativ kann man auch das PreparedStatement Objekt verwenden:

        -->A SQL statement is precompiled and stored in a PreparedStatement object. This object can then be used to efficiently execute this statement multiple times.

        <pre>
        PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
        SET SALARY = ? WHERE ID = ?");
        pstmt.setBigDecimal(1, 153833.00)
        pstmt.setInt(2, 110592)
        </pre>

        Je nach Anzahl der Inserts kann man hier höhere Performace erwarten.

        Näheres siehe Doku SUN JDK.

        Gruß Dietmar
        &#10

        Comment

        Working...
        X