Avatar billede iznurk Nybegynder
08. august 2003 - 14:18 Der er 15 kommentarer og
1 løsning

SQL's til navision database fra java

Jeg har installeret ODBC driveren og jeg har forbindelse til databasen. Jeg kan dog ikke få lov til at udføre :
stmt = con.createStatement();
så det er ikke muligt at udføre mine sql's. Er der nogen der har løsningen til dette problem ?
Avatar billede magoo20000 Nybegynder
08. august 2003 - 14:41 #1
Hvilken exception får du? Vi har brug for lidt mere from at hjælpe.
Avatar billede iznurk Nybegynder
08. august 2003 - 14:43 #2
Der kastes en SQLException:
java.sql.SQLException: The result set type is not supported.
Avatar billede arne_v Ekspert
08. august 2003 - 14:57 #3
Er der nogen af:

stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READONLY);
stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READONLY);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READONLY);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

der virker ?
Avatar billede magoo20000 Nybegynder
08. august 2003 - 15:02 #4
Jeg sad lige og læsete om det arne skriver om. Det er et godt bud på en løsning.
Avatar billede iznurk Nybegynder
08. august 2003 - 15:02 #5
jeg har prøvet at køre dem enkeltvis, og de giver alle samme fejlmelding:

java.sql.SQLException: The result set type is not supported.
        at sun.jdbc.odbc.JdbcOdbcStatement.initialize(JdbcOdbcStatement.java:154)
        at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.java:422)
Avatar billede arne_v Ekspert
08. august 2003 - 15:03 #6
Hm. Det er de ResultSet typer der eksisterer. Mystisk.
Avatar billede magoo20000 Nybegynder
08. august 2003 - 15:04 #7
Fra S2SE API: Result sets created using the returned Statement object will by default be type TYPE_FORWARD_ONLY and have a concurrency level of CONCUR_READ_ONLY.

Måske er det problemet?
Avatar billede magoo20000 Nybegynder
08. august 2003 - 15:05 #8
Nå ikke.. Måske et problem med din connection..
Avatar billede arne_v Ekspert
08. august 2003 - 15:12 #9
Har du testet om ODBC virker ?

(kan nemt testet fra Access eller Excel)
Avatar billede iznurk Nybegynder
08. august 2003 - 15:14 #10
min kode kaster ingen exceptions hvis jeg udkommenterer stmt = ..... og
jeg har prøvet JDBC test fra sun's hjemmeside. Det virker også.

2 sek. Jeg viser lige min kode...
Avatar billede iznurk Nybegynder
08. august 2003 - 15:16 #11
public class NavisionDB {
 
  private Connection con;
  private Statement stmt;
 
  public NavisionDB(){

   
    try{
      Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
      con = DriverManager.getConnection("jdbc:odbc:Sample C/ODBC 32 bit","", "");
     
      ResultSet res;
     
      //stmt = con.createStatement();
     
      //stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
      //stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
      //stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      //stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      //stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
      //stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
     
    System.out.println("connection to DB established !!");
      con.close();
     
    }
    catch (SQLException e){
      e.printStackTrace();
      System.out.println("DatabaseException:: No connection to database");
    }
    catch (ClassNotFoundException e){
      System.out.println("DatabaseException: Couldn't find jdbc driver");
    }
    catch (InstantiationException ie){
      System.out.println("DatabaseException:: Couldn't connect to jdbc driver");
    }
    catch (IllegalAccessException ie){
      System.out.println("DatabaseException:: Couldn't connect to jdbc driver");
    }
  }
 
  public static void main(String[] args) {
    new NavisionDB();
  }
 
}
Avatar billede arne_v Ekspert
08. august 2003 - 15:19 #12
[ikke noget med problemet at gøre]

Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
     
Burde kunne erstattes med:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

eller endda:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Avatar billede arne_v Ekspert
08. august 2003 - 15:19 #13
Og er det rigtigt at DSN er "Sample C/ODBC 32 bit" ?
Avatar billede iznurk Nybegynder
08. august 2003 - 15:20 #14
;o) Det startede jeg også med, men i desperation indsatte jeg dette fra SUN's JDBCtest.
Avatar billede iznurk Nybegynder
08. august 2003 - 15:22 #15
Yes. det er også den DNS der skal bruges i JDBCTest...
Avatar billede iznurk Nybegynder
27. august 2003 - 19:50 #16
Det viser sig desværre ikke muligt :o|
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