Avatar billede trp79 Nybegynder
01. april 2005 - 19:16 Der er 4 kommentarer og
1 løsning

Jdbc til excel ark, kan kun få select * til at virke.

Hejsa

Understående kode virker fint:
import java.sql.*;

public class Dmc2005 {
    public static void main(String[] args) throws Exception {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection("jdbc:odbc:;Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\\train.xls;");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM [dmc2005_train$]");
        while (rs.next()) {
            int iv = rs.getInt(1);
            String sv = rs.getString(2);
            System.out.println(iv + " " + sv);
        }
        stmt.close();
        con.close();
    }
}

Men når jeg siger: "SELECT * FROM [dmc2005_train$] WHERE A<1000" får jeg følgende fejl:

Too few parameters. Expected 1.
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
        at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
        at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
        at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:2
53)
        at Dmc2005.main(Dmc2005.java:8)

Nogen, der har en ide til, hvordan jeg får lov til at sætte en where klausul på?

På forhånd tak, mvh
Torben
Avatar billede arne_v Ekspert
01. april 2005 - 19:23 #1
Jeg tror at du skal skrive "kolonnenavne" i øverste række og at du så kan bruge
dem i f.eks. WHERE
Avatar billede trp79 Nybegynder
01. april 2005 - 19:40 #2
Tænker du fx på: "SELECT A FROM [dmc2005_train$] WHERE A = '49917'" ?

Det giver "nærmest" samme fejl:
Too few parameters. Expected 1.
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
        at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
        at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
        at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:2
53)
        at Dmc2005.main(Dmc2005.java:8)
Avatar billede arne_v Ekspert
01. april 2005 - 19:53 #3
Nej jeg mener at øverste række i dit regneark skal indeholde kolonnenavne og ikke data
Avatar billede trp79 Nybegynder
01. april 2005 - 21:53 #4
Super Arne - det virker jo perfekt!

Tak for hjælpen, mvh
Torben
Avatar billede arne_v Ekspert
01. april 2005 - 21:57 #5
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

SOS International

Cloud Native Architect

Capgemini Danmark A/S

Java Engineer

Forsvarsministeriets Regnskabsstyrelse

Datadesigner

Kongeå Trailercenter A/S

IT-Ansvarlig med bredt teknisk kendskab