13. december 2004 - 15:14Der er
16 kommentarer og 1 løsning
Hente én værdi fra DB
Hej, jeg har problemer med at hente en værdi op fra min DB (Oracle). Forsøger mig med følgende kodestykke: --------------------------- public Integer getNextOrderNr() throws SQLException, RemoteException {
// TODO Auto-generated method stub Statement stmt = conn.createStatement(); Integer i = stmt.executeQuery("select MAX(ordernr) from ORDRELISTE"); return i; ------------------------ Jeg får denne fejl: ............ cannot cast from resultset to integer. ............... (Jeg kører programmet som rmi)
Jeg har lidt svært ved at overskue hvad jeg gør forkert?
hvis jeg bruger denne: ------- ResultSet set = stmt.executeQuery("select MAX(ordernr) AS MAKS from ORDRELISTE");
int i = set.getInt("MAKS"); ----------------- hvad er "MAKS" så? Jeg skal bruge værdien da den senere skal smides tilbage ned i databasen. Jeg får en fejl i min kode når jeg forsøger fra klienten at benytte d.getNextOrderNr.
Jeg får denne fejl: ----------- her er ordren: [Mel: 10.0 kr., Mel: 10.0 kr.] java.lang.AbstractMethodError: DbServerImpl_Stub.getNextOrderNr()I at GUI.order(GUI.java:110) at GUI.access$2(GUI.java:103) at GUI$3.actionPerformed(GUI.java:86) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.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)
hvis jeg kører den med fast ordernr så virker det. Det er kun når jeg forsøger at hente d.getNextOrderNr den fejler. Jeg har andre metoder i GUI klassen der har samspil med DB.
Jeg må melde pas til den sidste fejl. Hvis du siger at den kan køre din d.indsaetOrdrelist(...) men ikke getNextOrderNr(), så ved jeg desværre ikke hvad der er galt.
Jeg har lige forsøgt at køre den igen fra dos promten og får denne fejl. Kan den bruges til noget? For mig virker det somom at det går galt idet at værdierne indsættes i selve DB?? ------------------- C:\j2sdk1.4.2\bin>java -classpath d:\oracle\ora90\jdbc\lib\classes12.zip;. GUI her er ordren: [Mel: 10.0 kr.] argh: ORA-00904: ugyldigt kolonnenavn
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java: 651) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.jav a:2117) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme nt.java:2331) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java: 634) at DbServerImpl.getNextOrderNr(DbServerImpl.java:116) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4 60) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport .java:701) at java.lang.Thread.run(Thread.java:534) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream RemoteCall.java:247) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java: 223) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133) at DbServerImpl_Stub.getNextOrderNr(Unknown Source) at GUI.order(GUI.java:110) at GUI.access$2(GUI.java:103) at GUI$3.actionPerformed(GUI.java:86) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17 86) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra ctButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel .java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258 ) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL istener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483 ) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
NU får jeg denne fejl: ------------------ argh: ResultSet.next blev ikke kaldt java.sql.SQLException: ResultSet.next blev ikke kaldt at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285) at oracle.jdbc.driver.OracleStatement.prepare_for_new_get(OracleStatemen t.java:2798) at oracle.jdbc.driver.OracleStatement.getIntValue(OracleStatement.java:3....osv osv ---------------- Hvad er det for en next der ikke bliver kaldt???
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.