Thanks for your quick response. Unfortunately, we've already tried these suggestions without result:
We do have a println as below:
Print query: SELECT kategori FROM ProduktSpecifikation INNER JOIN ProduktKatalog ON ProduktSpecifikation.katalogID =ProduktKatalog.KatalogID WHERE ProduktKatalog.mærke='Michelin'
We have this statement in the beginning of the program and works fine for two previous calls to the database:
public class ELarsenDBAdapter { private Connection con; private Statement s; private ResultSet rs;//=new ResultSet(); private ResultSet rs1; private ArrayList Ok;
//Constructor ELarsenDBAdapter public ELarsenDBAdapter(){}
//Connect to database public String dbConnect(String dbName) { String url="jdbc:odbc:"+dbName; String username = ""; String password = ""; // load the driver and make the connection try { //load the driver and make the connection Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(url,username,password); s = con.createStatement(); return null; } catch (ClassNotFoundException cnfex){ return "Failed to load JDBC/ODBC driver."; } catch (SQLException sqlex){ return "Unable to connect."; } }
//GetMærker public ArrayList getMærker(){ try{ System.out.println("In DBAdapter getMærker method.") ; String query = "SELECT mærke FROM ProduktKatalog"; System.out.println("Print query: "+query); System.out.println("Print s:"+s); /* if (sorted) query += " ORDER BY day, startTime"; */ ResultSet rs = s.executeQuery(query); System.out.println("Print rs: "+rs); return mærkerAdd(rs); } catch (SQLException sqlex){ return null; } }
//Convert database types (mærker) to String and read in private ArrayList mærkerAdd(ResultSet rs) throws SQLException { System.out.println("In mærkerAdd char to string conversion."); ArrayList rsArrayList=new ArrayList(); //get meta data ResultSetMetaData rsmd=rs.getMetaData(); //get row data while (rs.next()){ String rowData=""; for (int i=1;i<=rsmd.getColumnCount();++i){ switch (rsmd.getColumnType(i)){ case Types.VARCHAR: rowData+=rs.getString(i).trim()+ " "; break; default: System.out.println("Type was: " +rsmd.getColumnTypeName(i)); } } rsArrayList.add(rowData); } return rsArrayList; }
//SetNewRecord sli and sale public ArrayList setNewRecord(SalesLineItem sli, Sale sale){ try { s.executeUpdate("INSERT INTO Sale"+sale); s.executeUpdate("INSERT INTO SalesLineItem"+sli); return Ok; } catch (SQLException sqlex){ return null; } }
Here are the error messages and printlns when we run the program:
In DBAdapter getMærker method. Print query: SELECT mærke FROM ProduktKatalog Print s in getMærker:sun.jdbc.odbc.JdbcOdbcStatement@86f241 Print rs: sun.jdbc.odbc.JdbcOdbcResultSet@18ac738 In mærkerAdd char to string conversion. getMærker values [Goodyear , Continental , Michelin ] In DBAdapter getMiljøIDs method. Print query: SELECT MiljøID FROM MiljøGruppe Print s in getMiljøIDs: sun.jdbc.odbc.JdbcOdbcStatement@86f241 Print rs: sun.jdbc.odbc.JdbcOdbcResultSet@bb6ab6 In miljøIDsAdd ArrayList conversion. MiljøID Integer type for rowData: 1 MiljøID Integer type for rowData: 2 MiljøID Integer type for rowData: 3 MiljøID Integer type for rowData: 4 MiljøID Integer type for rowData: 5 MiljøID Integer type for rowData: 6 MiljøID Integer type for rowData: 7 getMiljøIDs values [1, 2, 3, 4, 5, 6, 7] Outlist1 in getMærker: [Vælg Mærke, Goodyear , Continental , Michelin ] OutList2 in getMiljøIDs: [1, 2, 3, 4, 5, 6, 7] In DBAdapter getMærker method. Print query: SELECT mærke FROM ProduktKatalog Print s in getMærker:sun.jdbc.odbc.JdbcOdbcStatement@1457cb Print rs: sun.jdbc.odbc.JdbcOdbcResultSet@18fef3d In mærkerAdd char to string conversion. getMærker values [Goodyear , Continental , Michelin ] In DBAdapter getMiljøIDs method. Print query: SELECT MiljøID FROM MiljøGruppe Print s in getMiljøIDs: sun.jdbc.odbc.JdbcOdbcStatement@1457cb Print rs: sun.jdbc.odbc.JdbcOdbcResultSet@a3bcc1 In miljøIDsAdd ArrayList conversion. MiljøID Integer type for rowData: 1 MiljøID Integer type for rowData: 2 MiljøID Integer type for rowData: 3 MiljøID Integer type for rowData: 4 MiljøID Integer type for rowData: 5 MiljøID Integer type for rowData: 6 MiljøID Integer type for rowData: 7 getMiljøIDs values [1, 2, 3, 4, 5, 6, 7] Outlist1 in getMærker: [Vælg Mærke, Goodyear , Continental , Michelin ] OutList2 in getMiljøIDs: [1, 2, 3, 4, 5, 6, 7] Michelin In DBAdapter getKategorier method. Mærke value: Michelin Print query: SELECT kategori FROM ProduktSpecifikation INNER JOIN ProduktKatalog ON ProduktSpecifikation.katalogID =ProduktKatalog.KatalogID WHERE ProduktKatalog.mærke='Michelin' Print s in getKategorier: null Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at eLarsen.ELarsenDBAdapter.getKategorier(ELarsenDBAdapter.java:158) at eLarsen.KontantSalgHandler.enterMærke(KontantSalgHandler.java:97) at eLarsen.Kontantsalg01$2.itemStateChanged(Kontantsalg01.java:364) at javax.swing.JComboBox.fireItemStateChanged(Unknown Source) at javax.swing.JComboBox.selectedItemChanged(Unknown Source) at javax.swing.JComboBox.contentsChanged(Unknown Source) at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source) at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.