GeneralChang Geschrieben 7. März 2003 Geschrieben 7. März 2003 Hallo! Ich bin JAVA Newbie und schreib grad an einem Tool, was Oracle Datenbank Tabellen updaten kann. Also von einer Master DB die Daten auslesen, die Client DB updaten funktioniert schon, nur wenn jetzt in der Master DB ein neuer Eintrag steht muß der doch mit INSERT in die Client DB übertragen werden. Also WENN in Master DB eine neue ID ist dann INSERT ansonsten update. Hört sich einfach an nur ich bekomm den neuen Eintrag nicht raus. void jButton2_actionPerformed(ActionEvent e) { String txtSQLA = "SELECT ID,MENU,Deutsch,Englisch from scott.LANGUAGE1"; ResultSet rs2 = null; String updSQL; int count=1; // Startwert, ab dem der RS kopiert wird. try { rs = stmtA.executeQuery(txtSQLA); rs.first(); do { String txtSQLB = "SELECT ID FROM scott.language2 WHERE ID = "+rs.getInt("ID"); rs2 = stmt.executeQuery(txtSQLB); rs2.first(); if(rs2.getBoolean()= null) { jTextArea1.append(String.valueOf(rs2.getInt("ID"))); //updSQL = "INSERT INTO scott.LANGUAGE2 (ID, MENU, DEUTSCH, ENGLISCH) VALUES(" + rs.getInt("ID") + ",'" + rs.getString("MENU") + "','" + rs.getString("Deutsch") + "','" + rs.getString("Englisch") + "')"; updSQL = "UPDATE "+ jTextField9.getText() +" SET ID = '"+rs.getInt("ID")+"', MENU = '"+rs.getString("MENU")+"', DEUTSCH ='"+rs.getString("Deutsch")+"', ENGLISCH = '"+rs.getString("Englisch")+"' WHERE ID = " + rs.getInt("ID"); //jTextArea1.append(updSQL); stmt.executeQuery(updSQL); } else jTextArea1.append("No update" + rs.getInt("ID")); }while (rs.next()); } catch (Exception e1) { System.out.println("Exception bei DataImport"); e1.printStackTrace(); } } Danke General Chang Zitieren
SgtBadAzz Geschrieben 8. März 2003 Geschrieben 8. März 2003 Originally posted by GeneralChang Hallo! if(rs2.getBoolean()= null) { General Chang What the **** is that ? == <> = Sonst ... wie wär es mit einem Trigger in der Master DB ?? Frank Zitieren
GeneralChang Geschrieben 8. März 2003 Autor Geschrieben 8. März 2003 Das war try and error von mir. Ich habs mittlerweile so gelöst: Wenn er in der Master DB einen Eintrag mehr gefunden hat, nachdem man das Update gemacht hat, kam die SQLException: Erschöpfte Datenmenge. So, jetzt lass ich mit den Fehler Code ausgeben und statt if else sag ich jetzt try(update) und wenn der Fehlercode kommt catch(insert). Funktioniert nicht schlecht. Nächste Phase kommt jetzt: Was ist wenn in der Master DB eine vorhandener Eintrag rausgelöscht wird? Irgendwie muss ich das ganze nuur andersrum gestalten. Sollte meinen das ist ganz einfach, aber...naja, Newbie halt. Trigger? Zitieren
SgtBadAzz Geschrieben 9. März 2003 Geschrieben 9. März 2003 Originally posted by GeneralChang Das war try and error von mir. Trigger? Trigger kann man auf Tabelle setzen, wenn da was passiert in der Tabelle wird der Trigger ausgelöst, damit kann man sowas eventuell auch lösen. Frank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.