JDBC, mysql, ResultSet

  • Ich entwickle gerade einen java-klient fuer ein Datenbank der unter mysql 4.x laeuft. alle tabellen habe ich in ResulSet die TYPE_SCROLL_SENSITIVE und CONCUR_UPDATABLE sind. In Datenbank habe ich zwei tabellen: Arbeiter und Lohn die ON DELETE CASCADE verknuepft sind damit wenn ich einen arbeiter loesche, werden seine Lohn eintraege auch weggeloescht. Ok. Jetzt wenn ich dass mit ResultSet mache, also arbeiterRS.absolete(zeile_zu_loeschenNr); arbeiterRS.deleteRow(); wird aus dem arbeiterRS und zugrundeligenden tabelle in dbms die Zeile geloescht. Es werden auch entspraechende Lohn Zeilen geloescht was aber dann nicht in lohnRS gezeigt wird, und wenn jede Zeile mit refreshRow(); versuche, bekomme ich eine Fehlermeldung:
    "refreshRow() called on row that has been deleted or had primary key changed."

    Wie kann ich also Lohn aktualisieren?

    P.S. ich verwende ein ~neuen treiber mysql...3.1.10. Also damit duerfte kein Problem sein.

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • Wow, 2-Pac lebt, Yo ;)
    Ja.. Habe vergessen zu sagen das ich eben sowas vermeiden will. Aus Performance grunden moechte ich die RS's nur einmal hollen

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • :thumb: die resultset kann man doch alles merken lassen und nach betimme zeit aktualisieren lassen so hatte ich das mal gemacht... es sinn voll da es resource spart und gleichzeitig immer frischhält alles

    "Am Anfang war ich, und dann kamst du,
    und nun wird mir schlecht :-)):devil:
    "

  • Ich habe dich nicht ganz verstanden. Was soll man merken? Wie soll diese zeitabhaengige update funktionieren?

    "Socialism is Bolshevism with a shave." 
    -'Detroit Journal'

  • So wie ich das verstanden habe, versuchst du einen refresh von einer Row, die du vorher über eine Referenz gelöscht hast.. Wenn du aber ein next() machst, müsstest du die nächste Row bekommen, die im RS steht.

    Da Big Pimp

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!