1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. java-girl

Beiträge von java-girl

  • CSS Layout Problem, float

    • java-girl
    • 17. Januar 2008 um 13:55

    Schon einmal probiert eine Tabelle zu verwenden?

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 17. Januar 2008 um 12:20
    Zitat von a9bejo

    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.

    Zitat von a9bejo


    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!

    Zitat von a9bejo


    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.

  • Vista und aon speed

    • java-girl
    • 16. Januar 2008 um 20:13

    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.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 19:31
    Zitat von DePadA

    Kenn deine Zugriffsreihenfolge nicht aber eventuell fehlt nur ein commit?

    Die Reihenfolge ist unerheblich, habe es schon mehrmals ausprobiert.
    Wo meinst du dass das commit fehlen könnte?
    Denn nachdem es sich beim execute() bzw. executeUpdate() aufhängt ist ein commit danach nutzlos.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 18:30

    Kann ich mal probieren, allerdings bezweifle ich das auch, da ja das INSERT funktioniert, welches ebenfalls mit einem stinknormalen execute() abgesetzt wird.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 17:43

    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.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 17:24
    Zitat von Trux

    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.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 17:12
    Zitat von Trux

    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.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 15:55
    Zitat von Trux

    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.

  • Oracle-ODBC Treiber bockt

    • java-girl
    • 16. Januar 2008 um 10:44

    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

    Code
    [B][size=10][COLOR=#7f0055][align=left]private void createConnection(String driver, String user, String password){
      try{
       //Parameter
       String url="jdbc:odbc:" + driver;
       //Verbindungsaufbau
       connection=DriverManager.getConnection(url, user, password);
       //Statement Object erzeugen
       statement = connection.createStatement();
    
      }
      catch(SQLException e){
       e.printStackTrace();
       System.out.println(e.getErrorCode());
       add(new JTextField(e.toString()));
      }
     }[/B][/COLOR][/SIZE][size=10][/align]
    [/SIZE]
    Alles anzeigen



    Tabelle auslesen - funktioniert

    Code
    private void refreshTable(){
      String[] columnNames;
      String[][] data;
      try{
       ResultSet rs = statement.executeQuery("SELECT count(*) FROM " + table);
       rs.next();
       int num = rs.getInt(1);
       rs = statement.executeQuery("SELECT * FROM " + table);
       ResultSetMetaData md = rs.getMetaData();
       columnNames = new String[md.getColumnCount()];
       for(int i = 1; i <= md.getColumnCount(); i ++) {
        columnNames[i-1] = md.getColumnName(i);
       }
       data = new String[num][columnNames.length];
       int j = 0;
       while(rs.next()){
        for(int i=1; i <= md.getColumnCount(); i++){
         data[j][i-1] = rs.getString(i);
        }
        j++;
       }
       DataModel m = new DataModel(columnNames, data);
       m.addTableModelListener(new TableListener());
       jTable.setModel(m);
      }
      catch(SQLException e){
       e.printStackTrace();
       add(new JTextField(e.toString()));
      }
     }
    Alles anzeigen



    Neue Datensätze einfügen - funktioniert

    Code
    private class AddButtonListener implements ActionListener{
      @Override
      public void actionPerformed(ActionEvent arg0) {
       StringBuilder build = new StringBuilder("INSERT INTO " + table + " VALUES(");
       for(JTextField t : fields){
        build.append("'" + t.getText() + "', ");
       }
       build.deleteCharAt(build.length()-1);
       build.deleteCharAt(build.length()-1);
       build.append(")");
       try{
        statement.execute(build.toString());
        refreshTable();
       }
       catch(Exception e){
        e.printStackTrace();
       }
       for(JTextField t : fields){
        t.setText("");
       }
     
      }
    
     }
    Alles anzeigen



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

    Code
    private class TableListener implements TableModelListener{
      @Override
      public void tableChanged(TableModelEvent evt) {
       DataModelEvent m = (DataModelEvent)evt;
       int row = evt.getFirstRow();
       StringBuilder query = new StringBuilder("UPDATE " + table + " SET");
       int cols = jTable.getModel().getColumnCount()-1;
       for(int i = 0; i < cols; i++){
        query.append(" " + jTable.getModel().getColumnName(i) + "='");
        query.append((String)jTable.getModel().getValueAt(row, i));
        query.append("',");
       }
       query.deleteCharAt(query.length()-1);
       query.append(" WHERE " + jTable.getModel().getColumnName(0) + "='" + m.getVal() + "'");
       try{
        statement.executeUpdate(query.toString());
        System.out.println(query.toString());
       }
       catch(SQLException e){
        e.printStackTrace();
        refreshTable();
       }
      }
    
     }
    Alles anzeigen



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

    Code
    [B][size=10][COLOR=#7f0055][align=left]private class DeleteButtonListener implements ActionListener{
      @Override
      public void actionPerformed(ActionEvent arg0) {
       DataModel m = (DataModel)jTable.getModel();
       int rows = m.getRowCount();
       for(int i = 0; i < rows; i++){
        if(m.isRowSelected(i)){
         String query = "DELETE FROM " + table + " WHERE " + m.getColumnName(0) + "='" + m.getValueAt(i, 0) + "'";
         try{
          statement.executeUpdate(query);
         }
         catch(SQLException e){
          e.printStackTrace();
          refreshTable();
         }
        }
       }
       refreshTable();
      }
    
     }[/B][/COLOR][/SIZE][size=10][/align]
    [/SIZE]
    Alles anzeigen



    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.

  • Java Probleme mit Stack

    • java-girl
    • 3. Dezember 2007 um 19:27

    Und bitte schreib doch Klassennamen groß, das tut in den Augen weh :(.

  • Neue Alu MacBook`s

    • java-girl
    • 1. Dezember 2007 um 10:38

    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.

  • Neue Alu MacBook`s

    • java-girl
    • 30. November 2007 um 21:34

    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:

  • Array auffüllen

    • java-girl
    • 29. November 2007 um 19:21
    Zitat von Reute

    Kann mir vielleicht jemadn sagen warum diese Methode nicht meine double zahl in eine binärzahl umwandelt??

    Welche Methode?


    Zitat von Reute


    Kommt immer ein fehler und zwar dass die Präzision verloren ginge

    Also das wundert mich nicht...

  • Fragen zum Multiplexer (Schaltung)

    • java-girl
    • 25. November 2007 um 17:11
    Zitat von LTD

    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.

    Zitat von LTD


    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 :winking_face:

    Zitat von LTD


    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.

    Zitat von LTD


    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...

    Zitat von LTD


    trotzdem vielen dank für deine Mühe!

    Kein Problem.

  • Fragen zum Multiplexer (Schaltung)

    • java-girl
    • 25. November 2007 um 16:48

    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

  • Fragen zum Multiplexer (Schaltung)

    • java-girl
    • 25. November 2007 um 16:00
    Zitat von LTD

    sorry, aber wenn die steuerleitungen (b,c) 0 sind, dann sind x und y immer 0, egal was a für einen wert hat!

    Stimmt ja gar nicht!
    y schon aber nur weil der Eingang der beim zweiten Multiplexer auf 0, 0 kodiert ist immer 0 ist.

    Wieso sollte bitte x da immer 0 sein???

  • Programmieren

    • java-girl
    • 25. November 2007 um 15:35
    Zitat von Homer


    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...

  • Fragen zum Multiplexer (Schaltung)

    • java-girl
    • 25. November 2007 um 15:27

    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

  • jLabel erzeugen und zu jForm hinzufügen...

    • java-girl
    • 24. November 2007 um 22:05

    Was heißt "es funktioniert nicht"?

Rechtliches

Impressum

Datenschutzerklärung