Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.07.2005, 14:19 Nach oben    #1
taskin73
Gast
 
Beiträge: n/a
Standard Sql

Hallo,

ich habe da ein problem, ich will eine suche realisieren bevor ich einen eintrag in die datenbank mache will ich raus finden ob ich nicht den gleiche eintrag habe.
Habe zwar schon die abfrage fertig er findet auch wenn eintrag doppelt ist nur wenn es diesen eintrag nicht gibt, gibt er mir exception fehler an "java.sql.SQLException: [Microsoft][ODBC Driver Manager] Ungültiger Cursorstatus" wie kann ich das abfangen das es keinen fehler anzeigt.
hier die funktion:
LandTF ist der Textfeld wo ich mein eintrag mache
public String Pruefe()
{
String okey="", arg1, arg2, arg3;
//*************************L A N D******************************************
try
{
Statement befehl = db.gcon.createStatement();
String strSQL ="select * from Laender WHERE nameLand LIKE \'"+LandTF.getText()+"\'";
ResultSet kurti = befehl.executeQuery(strSQL);
kurti.next();
arg1=kurti.getString("nameLand");

if (LandTF.getText().equals("")) {
feh_Landlb.setText("Bitte Land eingeben !"); //JLabel nur zur Fehler meldung
L_auslb.setText("! ! !"); //JLabel nur zur Fehler meldung
}
System.out.println(arg1);
if (!arg1.equals("")) { // die abfrage ist noch nicht vollkommen nur zur test zwecke

feh_Landlb.setText("Der Eintrag " + LandTF.getText() +
" existiert bereits !");
L_auslb.setText("! ! !");
okey = "no";
}
}
catch(Exception e)
{
System.out.println("Fehler beim vergleich von Laendern= "+e);
}
return okey;
}
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2005, 15:09 Nach oben    #2
Benutzer
 
Registriert seit: 11.06.2005
Beiträge: 36
Standard

Hallo,
der Fehler liegt bei
PHP-Code:
             String strSQL ="select * from Laender WHERE nameLand LIKE \'"+LandTF.getText()+"\'";
             
ResultSet kurti befehl.executeQuery(strSQL);
             
kurti.next();
             
arg1=kurti.getString("nameLand"); 
.
Wenn die Ergebnisstabelle des Select-Statements NULL
ergibt kannst du damit nicht weiter arbeiten.
Du musst also testen ob das Query überhaupt ein Ergebniss liefert
bevor du es ausliest.

mfG
rath ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2005, 20:47 Nach oben    #3
taskin73
Gast
 
Beiträge: n/a
Standard

kannst du mir bitte das anhand eines bespiels zeigen,
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2005, 21:27 Nach oben    #4
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Bei solchen Prüfungen mache ich immer eine
SELECT count(*) FROM table
Abfrage.

Die Rückgabe ist dann in Datensatz 1, Spalte 1 die Anzahl der gefundenen Datensätze.

PHP-Code:
 String strSQL ="SELECT count(*) FROM Laender WHERE nameLand LIKE \'"+LandTF.getText()+"\'";
             
ResultSet kurti befehl.executeQuery(strSQL);
             if (
kurti.isBeforeFirst()) {
                    
kurti.next();
             }
             
int anzahl kurti.getInt(1); // Hier steht die Anzahl der Datensätze die es schon mit dem Inhalt gibt 
Code ist gerade nicht getestet.

Gruß
Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2005, 02:04 Nach oben    #5
Benutzer
 
Registriert seit: 11.06.2005
Beiträge: 36
Standard

Hallo,
es gibt 2 Möglichkeiten der Lösung.
erstens....
das ResultSet Objekt der Query ist NULL, das heisst du kannst
[ResultSet == NULL] abfragen.
zweitens...
das ResultSet Objekt der Query ist nicht NULL aber enthält keine
Zeilen (praktisch eine leere Ergebnissmenge), dieses könntest du
durch eine Zählmethode der Ergebnisszeilen der ResultMenge abfragen.
Die dann natürlich 0 ist.

mfG
(Debuging?!?!)
rath ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2005, 13:30 Nach oben    #6
taskin73
Gast
 
Beiträge: n/a
Standard

Danke sparrow und rath, sparrow ich habe deinen code genommen und
habe nur das (if (kurti.isBeforeFirst()) { kurti.next(); } ) um geändert weil er mir da einen Fehler meldung gegeben hat.

Statement befehl = db.gcon.createStatement();
String strSQL = "SELECT count(*) FROM Laender WHERE nameLand LIKE \'" + LandTF.getText() + "\'";
ResultSet kurte = befehl.executeQuery(strSQL);
kurte.next();
int anzahl = kurte.getInt(1);

if(anzahl>0)
{
.....
}

DANKE !
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL, Zahlen auf zwei Stellen mit Nullen auffüllen, vgl. sprintf() Ben Datenbanken 8 21.04.2007 19:32
Abkürzung des Wochentags in SQL, vgl. strftime in PHP Ben Datenbanken 4 12.04.2007 16:51
Zugriff auf Wert des vorhergenden Datensatzes in einer SQL Abfrage Jay Datenbanken 5 17.07.2006 15:25
sql query where .... browse array juergreh PHP-Programmierung 6 13.05.2006 09:49
SQL Dumper bei all.inkl.com Jan Gesuche 10 15.03.2006 19:53


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45