Java/SQL: Im SQL-Statement JavaVariable befüllen

Lautsprecher

Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem: Ich möchte einen Datensatz in eine Tabelle auf dem SQL-Server schreiben. Der INSERT darf aber nur erfolgen wenn einige Kriterien erfüllt sind.
Zum Beispiel, dass der Name mit der Personalnummer übereinstimmt.
Dafür habe ich mir folgendes überlegt. Ich überprüfe zunachst mit einen INNER JOIN ob der Name und die Personalnummer übereinstimmt, wenn ja dann INSERT
wenn nein dann Meldung an Benutzer

Hier der Code:
Code:
try
{
   st = cn.createStatement();
   String insertString = 
   "IF EXISTS (SELECT Zeiterfassung_test.*, Mitarbeiter.nachname  
        FROM Zeiterfassung_test " +
        "INNER JOIN Mitarbeiter ON Zeiterfassung_test.employee_ID = 
        mitarbeiter.personalnr " +
       "WHERE Mitarbeiter.nachname = 'Kretschmann' AND 
         Zeiterfassung_Test.employee_ID = '3811' "+
        "AND Zeiterfassung_Test.status = '2' OR 
         Zeiterfassung_Test.status = '0' )" +
                                INSERT..................
  "ELSE " + 
        FEHLERMELDUNG AN BENUTER..................... ";
}


Mein Problem ist jetzt wie bekomme ich den Fehlermeldung unter ELSE hin? Kann man in einem SQL-Statement eine JavaVariable füllen und wenn ja wie oder noch besser funktioniert es irgendwie im SQL-Statement einen Java MessageDialog auszugeben?
Oder wie kann ich sonst herausfinden ob die Bedingungen eintreffen (somit INSERT) oder nicht und mit dieser Info dann weiter arbeiten.

Grüße
 
Hi!

Du könntest auch einfach eine Exception werfen die du dir selbst definiert hast. Ich weiß zwar nicht genau wie deine Applikation aufgebaut ist, aber wenn du die Exception im ausführenden Container abfängst, dann sollte sich dadurch schon eine Möglichkeit ergeben denke ich. Wie gesagt, ich weiß nicht wie die Struktur deines Programmes aussieht. Ich persönlich habe die Fehlerbehandlung in meinen Applikationen meist auf diese Art und Weise gelöst.

Gruß
TOM
 
sag was versuchst du hier zu erfinden? <img> Ist es nicht einfacher erst nachschauen ob diese bestimter Datensatz vorhanden ist, Danach machtst INSERT wie gehabt

strSQL="SELECT....
java.sql.Statement stat = getConnection().createStatement();
ResultSet result = stat.executeQuery(strSQL);
if(result......
strSQL="INSERT....
else
//Fehlermeldung


Heinrich
 
Zuletzt bearbeitet von einem Moderator:
Ich dachte, vielleicht kann ich gleich alles in einem verwurschteln......
Bin jetzt deinen beschriebenen Weg gegangen...

Danke
Grüße
 
Zurück