[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    18

    Unhappy java.lang.NullPointerException bei jdbc zugriff

    Hallo,
    ich habe ein sehr eigenartiges problem während des auslesens eines DB2-Files aus einer AS400.
    Das Progrämmchen funktioniert einwandfrei, solange ich die im Code rot markierte Zeile auskommentiere!
    Sobald einmal der Zwischenschritt zum speichern einer Zeile in ein String Array ausgeführt wird bekomme ich
    genau bei dieser Zeile eine java.lang.NullPointerException ?! Verstehe absolut nicht, warum ohne dieser Zeile das
    ganze File ausgelesen werden kann und wenn ich diese Zeile einbinde, sofort abgebrochen wird! Das Ablegen des Eintrages in einen normalen String funktioniert ja einwandfrei! Bin Neuling mit JDBC und hoffe ihr könnt mir weiterhelfen. Vielen Dank im voraus


    public void DatenBankResult() throws SQLException{
    int i=1;
    String liste = null;
    try{
    DriverManager.setLogWriter( new PrintWriter(System.out) );
    Class.forName( "com.ibm.as400.access.AS400JDBCDriver" );
    for ( Enumeration e = DriverManager.getDrivers(); e.hasMoreElements(); )
    driverinfo.setText(e.nextElement().getClass().getN ame());
    con = DriverManager.getConnection("jdbc:as400://as400.evva.com/qdls/qsys.lib/evva.lib/liste132.file/liste132.mbr","XXX","XXX");
    stmt = con.createStatement();
    rs = stmt.executeQuery("SELECT * FROM EVVA.LISTE132");
    while (rs.next()){
    String text = rs.getString(i);
    System.out.println(text);
    liste[i] = text;
    i++;
    }
    rs.close();
    con.close();
    stmt.close();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    System.err.println("Fehler: "+e.getMessage());
    System.exit(1);
    }
    }









  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.280
    Scheint mir, das das Array liste nicht initialisiert ist, mit anderen Worten, die Definition des Arrays ist wohl falsch.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    18
    String[ ] liste = null;

    ...ist doch die korrekte schreibweise, oder?

    mfg

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.280
    Dies ist ein leeres Array !
    Entweder du nimmst ein Array fester Grösse:
    String[ 100 ] liste;
    Oder du ermittelst die Anzahl dynamisch und definierst dann:
    String[ ] liste = new String[Anzahl];

    Oder du nimmst eine Collection (o.ä.).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    18

    Vielen Dank!

    mein problem ist jetzt nur mehr, dass ich keinen befehl finde
    mit dem ich die anzahl der einträge des files herausfinden kann!

    was ist der vorteil der collections??

    mfg

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.280
    Dass ich die Größe nicht genau kennen muss, z.B.:

    Vector x = new Vector();
    x.add("String1");
    x.add(.....)

    if (x.size > 0) {
    String s = x.get(0);
    }

    usw. usw.
    Es gibt viele Typen von Collections:
    Vector
    Map
    Stack
    HashTable
    :
    :

    Allerdings solltest du bei sowas auf deinen Speicher achten, da du nicht nur die SQL-Daten sondern auch noch eine Kopie davon im Speicher hast.
    Besser wäre eine sofortige Verarbeitung durchzuführen und frühzeitig wieder zu verwerfen (=>Performance).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.291
    Hallo,

    ein Arrray in Java ist ein Objekt, das erzeugt werden muss; was willst du denn eigentlich mit dem Text in dem String Array???

    mfg

    Dieter Bender

    Zitat Zitat von burton007
    Hallo,
    ich habe ein sehr eigenartiges problem während des auslesens eines DB2-Files aus einer AS400.
    Das Progrämmchen funktioniert einwandfrei, solange ich die im Code rot markierte Zeile auskommentiere!
    Sobald einmal der Zwischenschritt zum speichern einer Zeile in ein String Array ausgeführt wird bekomme ich
    genau bei dieser Zeile eine java.lang.NullPointerException ?! Verstehe absolut nicht, warum ohne dieser Zeile das
    ganze File ausgelesen werden kann und wenn ich diese Zeile einbinde, sofort abgebrochen wird! Das Ablegen des Eintrages in einen normalen String funktioniert ja einwandfrei! Bin Neuling mit JDBC und hoffe ihr könnt mir weiterhelfen. Vielen Dank im voraus


    public void DatenBankResult() throws SQLException{
    int i=1;
    String liste = null;
    try{
    DriverManager.setLogWriter( new PrintWriter(System.out) );
    Class.forName( "com.ibm.as400.access.AS400JDBCDriver" );
    for ( Enumeration e = DriverManager.getDrivers(); e.hasMoreElements(); )
    driverinfo.setText(e.nextElement().getClass().getN ame());
    con = DriverManager.getConnection("jdbc:as400://as400.evva.com/qdls/qsys.lib/evva.lib/liste132.file/liste132.mbr","XXX","XXX");
    stmt = con.createStatement();
    rs = stmt.executeQuery("SELECT * FROM EVVA.LISTE132");
    while (rs.next()){
    String text = rs.getString(i);
    System.out.println(text);
    liste[i] = text;
    i++;
    }
    rs.close();
    con.close();
    stmt.close();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    System.err.println("Fehler: "+e.getMessage());
    System.exit(1);
    }
    }








    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Sep 2005
    Beiträge
    18
    danke für deine tipps, werd mir das mit dem
    vector auf jedenfall überlegen!

    mfg

  9. #9
    Registriert seit
    Sep 2005
    Beiträge
    18
    eigentlich will i jetzt eh nichts mehr von dem string array, werd
    das ganze mit vector machen, hab nur irgendwie an das nicht
    gedacht...

Similar Threads

  1. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  2. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  3. Java ... JDBC ... Zugriff DB2 - Port iSeries ???
    By bode in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 02-09-05, 15:09
  4. Zugriff auf AS/400 mit JDBC
    By TARASIK in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 02-08-04, 08:27
  5. Zugriff auf DB/400 über JDBC
    By Rucker in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 29-09-01, 11:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •