Beiträge von java-girl

    Vieleicht eine naive Frage, aber hast Du dich schon mit den selben accountdaten ueber einen anderen client (commandline, Toad oder so) eingeloggt und versucht ein update zu machen? Eventuell blockt das Statement ja auch da. Oder vielleicht hat der Account nicht die notwendigen Rechte, und der Treiber versaut das Errorhandling. Read und Insert Rechte vergeben, aber keine updates oder deletes zu erlauben, macht ja manchmal durchaus Sinn.

    Ja habe ich. Mein Benutzer hat alle Rechte und die von mir produzierten Queries waren OK, ich habe sie vorher ausprobiert.


    Versuch vielleicht mal ein explizites commit [b]vor[.b] dem execute(). Z.b. ein select statement wird erst committed, wenn das ResultSet geschlossen wurde. Vielleicht leaked das ja irgendwo. Prüf deshalb auch ob alle ResultSets ordentlich geschlossen werden.

    Das ResultSet (gibt eh nur eines, das in der Methode mit dem SELECT) habe ich nicht geschlossen...vielleicht liegt es wirklich an dem!


    Oder ist es vielleicht möglich, dass Teile der Daten, die du verändern möchtest, von anderer Stelle (einem anderen Benutzer / einer anderen App) aus gelockt sind?

    Das wäre ebenfalls möglich, ich hatte nämlich zu diesem Zeitpunkt eine SQL Kommandozeile offen.

    Danke, ich werde das einmal ausprobieren, geht aber erst frühestens am Montag, dann werde ich mich melden.

    Mich wundert nur wo du die Anleitung hast? Wenn du sie weggeschmissen hast dann bist du selbst schuld...ansonsten such sie dort steht alles übergenau drinnen. Und so ein großer Unterschied zwischen Vista und XP besteht jetzt auch nicht.

    Eben gar keine, das gesamte Programm hängt sich auf. Er kommt bis vor die Anweisung statement.executeUpdate() und dort bleibt er dann hängen. Und wie gesagt, execute() liefert selbiges Ergebnis.
    Hab' auch schon 2 verschiedene Oracle-Treiber probiert (die beiden die bei Windows angeboten werden), ist bei beiden gleich.

    eine zeile im code, die erst wo anders ein problem macht?
    na, das kanns ja wirklich nicht geben. wär ja echt was ganz neues. ich seh schon, du hast mich durchschaut. ich hab natürlich keine ahnung im gegensatz zu dir.

    wenn dir fad is, dann können wir gerne noch ein bisschen 'wieso-weils halt so is' spielen. aber alternativ könntest du natürlich auch was ganz verrücktes machen und einfach ausprobieren was ich dir vor 6h geraten habe.

    ps: der geneigten leserin empfiehlt der trux:
    http://www.dbai.tuwien.ac.at/education/dbs/folien/JDBC.pdf Seite 35

    Das war jetzt wenigstens einmal eine Begründung.
    Aber wie gesagt ich glaube nicht dass das mein Fehler ist, denn immerhin mache ich UPDATE und DELETE nicht aus dem ResultSet heraus sondern setze mit executeUpdate() bzw. execute() hab' ich auch schon ausprobiert - ein eigenes, syntaktisch richtiges Query ab. Das Beispiel auf der Folie ist ein anderes.
    Außerdem kann ich es jetzt gerade nicht ausprobieren, habe es nicht da.

    freut mich, dass du meinen tipp ausprobiert hast.

    Dann erklär' mir mal bitte, was der Unterschied sein soll - immerhin geht ja UPDATE und DELETE nicht und nicht SELECT.

    Im Übrigen...nachdem das Ganze dynamisch ist geht das gar nicht, denn ich weiß im Vorhinein nicht, wie die Spalten heißen.

    probier mal die spalten namen beim selecten explizit anzugeben.
    also:
    select columnA, columnB, columnC from table;
    anstatt
    select * from table



    Wieso?
    Immerhin fuktioniert dieses Query ja. Nur bei UPDATE und DELETE gehts nicht.

    Zitat


    Sind das lauter String-Spalten?



    Nein, aber DBMS führen implizite Typecasts durch. Probiers aus. Auf diese Weise spare ich mir die mühsame Unterscheidung der Datentypen, welche wahnsinnig viele sind. Dadurch wird das Query zwar etwas langsamer, aber das wirkt sich nicht wirklich aus.

    Hallo!
    Ich habe zwei kleine Klassen geschrieben, die eine beliebige Tabelle (egal, welches DBMS dahintersteckt) in einer JTable anzeigt. Außerdem kann man neue Datensätze einfügen, löschen und Datensätze verändern.
    Ich habe bisjetzt nur auf MySQL gearbeitet und natürlich sollte es keinen Unterschied machen, ob ich jetzt auf MySQL oder Oracle arbeite, immerhin sind ja die Queries identisch.
    Allerdigs geht bei Oracle nur das auslesen - will ich ein Update, Delete oder Insert machen dann hängt sich das Programm auf.
    Die wesentlichen Stellen:

    Verbindungsaufbau - funktioniert



    Tabelle auslesen - funktioniert



    Neue Datensätze einfügen - funktioniert



    Update - funktioniert nicht, hängt sich bei statement.executeUpdate(query.toString()); auf.



    Datensatz löschen - funktioniert nicht, hängt sich ebenfalls an der selben Stelle auf.



    Also scheinbar liegt es an dem executeUpdate - aber wieso? Es müsste doch theoretisch auf jeder Datenbank funtionieren! Hat jemand eine Ahnung, was da genau der Fehler ist bzw. wie man dem ausweichen kann?

    Lg.

    hal: Mittlerweilen ist der Apostroph nach dem Genitiv in der Deutschen Sprache erlaubt, siehe Duden. Dennoch verwende ich ihn nicht weil er eine Unart ist. Sonst hast du Recht, eigentlich ist der Apostroph im Deutschen ein Auslassungszeichen.
    Aber weder im Deutschen noch im Englischen ist der Apostroph nach dem Plural erlaubt, wie in diesem Fall.

    Sorry, auch wenn das jetzt komplett OT ist, aber es muss raus: es heißt MacBooks und nicht MacBook's! Der Apostroph ist falsch, da es sich nicht um einen Genitiv sondern einen Plural handelt! Immerhin heißt es ja auch Fotos und nicht Foto's, Autos und nicht Auto's, usw.
    Dieser Apostroph ist ürigens weder im Deutschen noch im Englischen erlaubt. Würde mich freuen wenn ihr euch das zu Herzen nehmt :engel:

    Meine Sätze sind leider grammatikalisch korrekt!

    Denk' vielleicht noch einmal darüber nach. Aber wenn ich mich nicht täusche, brauchst du für diesen Satz nur ein Verb. Ich glaub' dir eh dass das ein Versehen war, wenn man den Satz neu formuliert und vergisst den alten Teil vollständig weg zu löschen passiert das halt manchmal. Nur wie gesagt, mir war die Bedeutung des Satzes schleierhaft.


    Der Satz sollte soviel bedeuten wie:
    "Meine Ansicht wie dieser Multiplexer funktioniert, ist bestimmt falsch und deswegen versuche ich erst garnicht meine Gedanken in Worte zu fassen."

    Besser so?^^

    Ja ;)


    Im übrigen ist mir die moralische Regelung bezüglich der Hausaufgaben bekannt (wie in jedem Forum), aber meine Aufgabe bezieht sich auf etwas mehr als nur eine WWT für einen MUX zu erstellen!

    Teil oder ganz, ich glaube, so viel Unterschied ist da nicht.


    Ich wollte bloß nachfragen, ob mir jemand den entscheidenen Anschub geben kann.


    Wie gesagt, mein erster Post. Hab' dir sogar ein Beispiel gegeben. Du musst es ja nur aus dem Schaltbild ablesen...


    trotzdem vielen dank für deine Mühe!

    Kein Problem.

    Bitte versuche, dass du grammatikalisch korrekte Sätze schreibst, denn ehrlich gesagt verstehe ich nicht, was der erste Satz bedeuten soll.

    Zitat


    es wird eh falsch sein

    Was wird "eh falsch sein"? Auf jeden Fall stimmt das, was ich gesagt habe.

    Zitat


    also wie erstelle ich aus dieser schaltung eine WWT?

    Siehe mein erster Post. Ich glaube genauer kann man es nicht erklären, wobei eigentlich das Schaltbild ja schon selbsterklärend ist. Wenn du das nicht verstehst, dann kann ich dir leider auch nicht mehr helfen.
    Im Übrigen solltest du dir vielleicht Folgendes zu Herzen nehmen:

    http://www.informatik-forum.at/showthread.php?p=167379#post167379


    bin mir sicher, dass jeder so seine startschwierigkeitem beim programmieren hatte.... is halt nicht das natürlichste der welt;)

    Nein, das ist nicht so. Ich habs eigentlich von Anfang an gekonnt wie ich es in der Schule gelernt habe ohne jegliche Vorkenntnisse. Aber die meisten haben wohl Schwierigkeiten, es ist einfach so wie bei Mathematik...

    Wo liegt das Problem?

    Du hast je vier Eingänge und jeder Eingang braucht ein eindeutiges Steuersignal, also brauchst du 2 Steuerleitungen. Und die Steuerkodierung ist schon vorgegeben, d.h. du brauchst es eigentlich nur aus der Schaltung ablesen.
    Beispiel: x = a wenn b = 0 und c = 0