ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
4223
4223
EMPFEHLEN
-
15.01.08 09:36 #1
Hi,
Nach unzäligen Stunden Fehlersuche wende ich mich jetzt an das Forum:
Code :1 2 3 4 5
int iCounter = 0; while(objReSet.next()){ arMyTableCells[iCounter][0] = new MyTableCells(objReSet.getInt(this.I_CALL_CALL_NR)); iCounter++; }
(objReSet = ein ResultSet-Objekt)
Eigentlich sollte ein Datensatz nach dem anderen in das Array geschrieben werden. Aber durch System.Out's kann man sehen, dass die Schleife nur einmal durchlaufen wird. Lösch ich die Zeile "arMyTableCells[iCounter][0] = new MyTableCells(objReSet.getInt(this.I_CALL_CALL_NR));", dann läuft die Schleife komischer Weiße so oft durch, wie es Datensätze gibt. Fast den gleichen Code habe ich funktionierend in einem anderen Projekt, nur dass ich dort keinen Int sondern ein Objekt aus dem ResultSet hohle.
Hat jemand eine Idee?"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 10:50 #2
Nicht dass jetzt noch jemand fragt: Ja es sind genügend korrekte Datensätze vorhanden!
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 11:03 #3wsl Tutorials.de Gastzugang
Hallo,
versuch doch mal das ganze etwas aufzusplitten (falls du das eh nicht schon getan hast).
Zum Beispiel zuerst nur ein
Integer i = objReSet.getInt(0);
in der Schleife durchführen und gucken ob es hinhaut.
Dann ein
MyTableCells cell = new MyTableCells(i);
usw...
So kannst du das Problem wenigstens mal etwas eingrenzen
-
15.01.08 11:19 #4Code :
1 2 3 4 5 6 7 8
int iCounter = 0; int iTemp = 0; while(objReSet.next()){ iTemp = objReSet.getInt(this.I_CALL_CALL_NR); MyTableCells cell = new MyTableCells(iTemp); arMyTableCells[iCounter][0] = cell; iCounter++; }
Wenn ich diese Zeile: MyTableCells cell = new MyTableCells(iTemp); rauskommentiere, dann durchläuft er die Schleife in korrekter Anzahl. Allerdings hat die Klasse MyTableCells keinen Einfluss auf das ResultSet oder den Counter. Wieso also durchläuft er die Schleife dann nur 1 mal?"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 11:28 #5wsl Tutorials.de Gastzugang
Fliegt da irgendwo eine Exception und du fängst die mit einem leeren catch ab? Führt er den Code unter dem MyTableCells cell = new MyTableCells(iTemp); noch aus?
Was macht der Konstruktor von MyTableCells?
-
15.01.08 11:31 #6Code :
1 2 3 4 5 6 7 8 9
/** * Konstruktor */ public MyTableCells(int _iCallNumber) { try{ this.iCallNumber = _iCallNumber; this.jbInit(); }catch(Exception ex){ex.printStackTrace();} }
Ich habe keinen leeren catch. jbInit() initialisiert alle Komponennten (Klasse stellet ein JPannel mit Inhalt dar)."... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 11:38 #7kaMii Tutorials.de Gastzugang
Ich revidiere mal meine Aussage, habe den Beitrag nochmal genau durchgelesen.
Aber wie wäre es wenn du dir erst mal ein Objekt rausholst und das dann auf Int castest?Geändert von kaMii (15.01.08 um 11:43 Uhr)
-
15.01.08 11:44 #8
Ja ich habe in der API nachgelesen und das suspekte, in meinem MySQL Explorer den ich programmiert habe funktioniert dies genauso. Nein dieses ResultSet belege ich nicht neu.
Hier noch mehr Code:
Methode die die Daten für die Tabelle erstellt (in der Klasse in der die Tabelle erstellt wird):
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
//Erstellt die Daten fr die Tabelle private MyTableCells[][] createTableData() throws Exception{ ResultSet objReSet = null; ResultSet objReSet2 = null; int iRowCount = 0; if(this.jtpCallType.getSelectedIndex() == this.I_INNCOMING_CALL){ objReSet2 = DBConnection.objStat.executeQuery("SELECT COUNT(*) FROM Call WHERE CallDirection = " + this.I_INNCOMING_CALL + ";"); objReSet2.next(); iRowCount = objReSet2.getInt(1); objReSet = DBConnection.objStat.executeQuery("SELECT * FROM Call WHERE CallDirection = " + this.I_INNCOMING_CALL + ";"); } else{ objReSet2 = DBConnection.objStat.executeQuery("SELECT COUNT(*) FROM Call WHERE CallDirection = " + this.I_GOING_OUT_CALL + ";"); objReSet2.next(); iRowCount = objReSet2.getInt(1); objReSet = DBConnection.objStat.executeQuery("SELECT * FROM Call WHERE CallDirection = " + this.I_GOING_OUT_CALL + ";"); } MyTableCells arMyTableCells[][] = new MyTableCells[iRowCount][1]; System.out.println("iRowCount: " + iRowCount); int iCounter = 0; int iTemp = 0; while(objReSet.next()){ iTemp = objReSet.getInt(this.I_CALL_CALL_NR); MyTableCells cell = new MyTableCells(iTemp); arMyTableCells[iCounter][0] = cell; iCounter++; } System.out.println("iCounter: " + iCounter); return(arMyTableCells); }
Klasse MyTableCells:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
package anrufsarchiv; import java.util.*; import javax.swing.*; import java.sql.*; import info.clearthought.layout.*; import javax.swing.border.*; import java.awt.*; /** * berschrift: Anrufsarchiv * Beschreibung: * Copyright: Copyright (c) 2007 * Organisation: HWI * @author Knoblach Matthias * @version 1.0 */ public class MyTableCells extends JPanel implements MyIcons, FieldKeys{ private double arLayoutRows[] = {TableLayout.FILL}; //Die Reihen des TableLayouts private double arLayoutColumns[] = {20, 50, 50, TableLayout.FILL}; //Die Spalten des TableLayouts private TableLayout objMyTableLayout = new TableLayout(arLayoutColumns, arLayoutRows);//Erstellen des Table Layouts private int iCallNumber; JLabel jlblIconField = new JLabel(); JLabel jlblDateTime = new JLabel(); JLabel jlblDialogPartner = new JLabel(); JLabel jlblReason = new JLabel(); /** * Konstruktor */ public MyTableCells(int _iCallNumber) { try{ this.iCallNumber = _iCallNumber; this.jbInit(); }catch(Exception ex){ex.printStackTrace();} } /** * Initialisierung alle Komponennten */ private void jbInit() throws Exception{ //Umrandung der Labels setzen this.setAllBorder(); //Labels mit Inhalt fllen this.fillLabels(); //Komponenten hinzufgen this.add(this.jlblIconField, "0,0"); this.add(this.jlblDateTime, "1,0"); this.add(this.jlblDialogPartner, "2,0"); this.add(this.jlblReason, "3,0"); } private void fillLabels() throws Exception{ ResultSet objReSet = DBConnection.objStat.executeQuery("SELECT * from Call WHERE CallNr = " + this.iCallNumber + " ;"); objReSet.next(); //Priorits-Label this.jlblIconField.setIcon(this.arIcons[objReSet.getInt(this.I_CALL_PRIORITY)]); //Datum und Uhrzeit Label String strTime = objReSet.getTime(this.I_CALL_CALL_TIME).toString(); strTime = strTime.substring(0, strTime.lastIndexOf(":")); this.jlblDateTime.setText(createTimeDateText(objReSet.getTime(this.I_CALL_CALL_TIME), objReSet.getDate(this.I_CALL_CALL_DATE))); //Namens-Label this.jlblDialogPartner.setText(objReSet.getString(this.I_CALL_DIALOG_PARTNER_TOKEN)); //Grund-Label this.jlblReason.setText(objReSet.getString(this.I_CALL_REASON_TOKEN)); } /** * Gibt einen String zurck, der die bergebene Uhrzeit und das bergebene * Datum formatiert zurckgibt */ private String createTimeDateText(Time _time, java.util.Date _date){ String strTime = _time.toString(); strTime = strTime.substring(0, strTime.lastIndexOf(":")); Calendar calDatum = Calendar.getInstance(TimeZone.getTimeZone("ECT"), new Locale("de", "DE")); calDatum.setTime(_date); String strDate = String.valueOf(calDatum.get(Calendar.DAY_OF_MONTH)) + "." + String.valueOf(calDatum.get(Calendar.MONTH) + 1) + "." + String.valueOf(calDatum.get(Calendar.YEAR)); return(strTime + " - " + strDate); } //Hier werden die Umrandungen fr die Komponennten gesetzt private void setAllBorder(){ Border objMyRaisedBorder = BorderFactory.createLineBorder(Color.black,1); this.jlblIconField.setBorder(objMyRaisedBorder); this.jlblDateTime.setBorder(objMyRaisedBorder); this.jlblDialogPartner.setBorder(objMyRaisedBorder); this.jlblReason.setBorder(objMyRaisedBorder); } }I"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 11:48 #9
Sorry hab jetzt erst gelesen, dass du deinen Beitrag geändert hast.
Leider klappt deine Idee mit dem Objekt auch nicht
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 11:56 #10kaMii Tutorials.de Gastzugang
Wo wird die statische Variable "I_CALL_CALL_NR" deklariert? Bzw. mit was oder wo wird sie neubelegt?
-
15.01.08 12:00 #11wsl Tutorials.de Gastzugang
Ich weiß zwar nicht ob es was bringt, aber du könntest mal versuchen dieses jbInit() erst nach der while-Schleife aufzurufen.
Also quasi eine zweite Schleife die das jbInit() für jedes MyTableCells-Objekt aufruft. Setzt halt voraus, dass es public is...
Oder du speicherst dir die ganzen int-Werte in einem Array und erzeugst die MyTableCells komplett in einer zweiten Schleife.
-
15.01.08 12:10 #12"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
15.01.08 12:21 #13
Ok jetzt funktionierts. Und zwar mit der Methode von wsl. Danke für eure geopferte Zeit.
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
Ähnliche Themen
-
MySql Datenbank auslesen
Von dumbaz28 im Forum .NET Web und KommunikationAntworten: 6Letzter Beitrag: 31.12.09, 14:01 -
Notes Datenbank mit java auslesen?
Von Ryu20 im Forum JavaAntworten: 2Letzter Beitrag: 17.12.08, 08:40 -
In C MySQL Datenbank auslesen
Von Limitsunknown im Forum C/C++Antworten: 1Letzter Beitrag: 04.11.07, 19:11 -
Manipulationsfehler bei Java zu Mysql Datenbank
Von dastool im Forum JavaAntworten: 3Letzter Beitrag: 24.08.07, 17:14 -
Auslesen aus MySql datenbank
Von Nickel im Forum PHPAntworten: 2Letzter Beitrag: 19.02.02, 18:18





Zitieren
Login





