Announcement

Collapse
No announcement yet.

Datensatz abfrageb, ob vorhanden?

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

  • Datensatz abfrageb, ob vorhanden?

    Hallo

    Wie kann ich einen Datensatz in der SQL Datenbank abfragen, ob er vorhanden ist? Wenn ich es Abfrage indem die Daten übertragen und gesucht werden, schmeisst mir Java folgende Fehlerausschrift aus:

    SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use.
    SQLState: 42000
    VendorError: 1064

    Wenn ich aber die gleiche Syntax zum Schreiben in die Datenbank nehme, da geht es problemlos.


    DANKE

  • #2
    Wie schaut den die SQL-Query zum Abfragen aus?

    Comment


    • #3
      Code:
      			rs = stmt.executeQuery("SELECT Vorname, Nachname, Strasse, Wohnort, Postleitzahl, Geburtstag FROM personen WHERE "
      							+ "' AND Vorname = '"
      							+ Vorname
      							+ "' AND Nachname = '"
      							+ Nachname
      							+ "'"
      							+ "' AND Strasse = '"
      							+ Strasse
      							+ "' AND Wohnort = '"
      							+ Wohnort
      							+ "' AND Postleitzahl = '"
      							+ Postleitzahl
      							+ "' AND Geburtstag = '" + Geburtstag + "'");
      
      			while (rs.next()) {
      
      				if (rs.getString(2).equals(Vorname)
      						&& rs.getString(3).equals(Nachname)
      						&& rs.getString(4).equals(Strasse)
      						&& rs.getString(5).equals(Wohnort)
      						&& rs.getString(6).equals(Postleitzahl)
      						&& rs.getString(7).equals(Geburtstag)) {
      					System.out.println("Daten in Database gefunden!");
      					Datensatz_vorhanden = true;
      
      				}
      			}
      Habe es so mit Query versucht, aber da entsteht der Fehler. rs ist das Resultset.
      Nutze SQL erst seit 2 Wochen.

      Comment


      • #4
        FROM personen WHERE " + "' AND Vorname = '"
        Das erste AND nach dem WHERE würde ich weg lassen, dann wird es eher funktionieren.

        Und das einzelne
        + "'"
        mittendrin ist auch nicht ganz richtig.

        Copy & Paste, die größte Fehlerquelle überhaupt.
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Des weiteren kann man sich die zusätzliche Abfrage ob die Werte identisch sind, sparen, denn das passiert bereits in der WHERE Bedingung.
          Statt dessen wäre ein SELECT count(*) sinnvoller.

          In einer Multiuserumgebung kann der Datensatz natürlich in der zwischenzeit trotzdem gelöscht bzw. angelegt werden.

          Dim
          Zitat Tom Kyte:
          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

          Comment


          • #6
            Außerdem gehört es verboten, einen SQL-Befehl auf diese Weise durch String-Verknüpfung mit variablen Inhalten zusammenzufummeln. Benutze unbedingt Parameter! Siehe [Artikelserie] Parameter von SQL Befehlen; dann fallen u.a. die Probleme mit den Hochkommata einfach weg.

            Jürgen

            Comment

            Working...
            X