Toon posts:

[java]connecten met ms access-db

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een programma fragment te schrijven om een connectie met een microsoft access database te leggen. Ik doe dmv onderstaande code:
code:
1
2
3
4
5
6
7
public void Connect() throws Exception{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String filename = "C:/db1.mdb";
    String database = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=";
    database+= filename.trim() + ";DriverID=22;READONLY=true}";
    Connection con = DriverManager.getConnection(database ,"","");
  }


Ik zet vervolgens het volgende in "jbInit()" om het connecten uit te voeren, gelijk met het opstarten:
code:
1
2
DbAction db = new DbAction();
db.Connect();


Ik krijg echter steeds de volgende melding en daaronder (natuurlijk) de exceptions dat de verbinding niet gemaakt kan worden:

[Microsoft][ODBC-stuurprogrammabeheer] De naam van de gegevensbron is niet gevonden en er is geen standaardstuurprogramma opgegeven

Heeft iemand voor mij de verlossende oplossing? Het is vast iets kleins, maar ik kijk er steeds overheen :( Thx.

Verwijderd

Topicstarter
In dit draadje heb ik zelf al gepost. Voor mijn probleem zit er geen relevante informatie bij, althans denk ik :)

Verwijderd

Topicstarter
*kick*

Aangezien niemand zo 1,2,3 een oplossing kan bedenken, wil ik vragen of iemand met mij de stappen van het connecten bij langs wil lopen, zodat ik er (als het goed is) achter kom waarom ik steeds een exception krijg.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
In het topic wat ik aangaf staat een compelete sourcecode waar een connectie wordt gelegd naar een Access DB via een ODBC koppeling.
Verder wordt ook verteld hoe je Access via ODBC benaderbaar maakt.
Welke (relevante) informatie staat daar niet in?

  • xos
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:35

xos

Je maakt een dsn aan en voert die in de url in.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.sql.*;

public class datatest {
  public static void main (String[] args) {
    String URL = "jdbc:odbc:MijnDatabase";
    String Uname = "";
    String Passwd = "";
    try {
      Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch (Exception e) {
      System.out.println ("JDBC/ODBC driver kan niet worden geladen");
      return;
    }
   
    Statement opdracht = null;
    Connection verbinding = null;
    try {
      verbinding = DriverManager.getConnection (URL, Uname, Passwd);
      opdracht = verbinding.createStatement();
    }
    catch (Exception e) {
      System.err.println ("Kan geen verbinding met " + URL + " maken");
    }
    try {
      ResultSet gegevens;
      gegevens = opdracht.executeQuery ("je query");
      String kolom1;
      String kolom2;
      while (gegevens.next()) {
        kolom1= gegevens.getString ("kolom1_naam");
        kolom2= gegevens.getString ("kolom2_naam");
        System.out.println (kolom1 + kolom2);
      }
      verbinding.close();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}


succes ermee, het zou zo wel mogen lukken lijkt me

[ Voor 0% gewijzigd door xos op 26-10-2002 13:40 . Reden: dns --> dsn ]


Verwijderd

Topicstarter
Je maakt een dsn aan en voert die in de url in.
In de ODBC Administrator moet dat toch, althans zo doe ik dat :?

  • xos
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:35

xos

Verwijderd schreef op 27 oktober 2002 @ 13:33:
[...]

In de ODBC Administrator moet dat toch, althans zo doe ik dat :?
idd

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 27-08 22:38

NetForce1

(inspiratie == 0) -> true

Ik voer m'n database in in de ODBC-manager, is er echter ook een manier om dat automatisch te doen, of om dat helemaal niet te doen, en de database als argument mee te geven aan de Access-driver?

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

ODBC!=Access

En nee er is geen manier als je Access via ODBC gebruikt (dat ik weet). Je zal een reeds gemaakte ODBC dsn moeten gebruiken. Er zijn wel manieren om een dsn vanuit de code aan te maken. Of dat ook vanuit java kan weet ik niet.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
LordLarry schreef op 28 oktober 2002 @ 12:40:
ODBC!=Access

En nee er is geen manier als je Access via ODBC gebruikt (dat ik weet). Je zal een reeds gemaakte ODBC dsn moeten gebruiken. Er zijn wel manieren om een dsn vanuit de code aan te maken. Of dat ook vanuit java kan weet ik niet.
Vaag, want ik heb in de ODBC admin een dsn aangemaakt, genaamd "test" en deze in de url verwerkt (jdbc:odbc:test) en dit kon ik vervolgens prima aanroepen via "hard"-code. Wil het echter grafisch doen, dan moet je in de DB Pilot een nieuwe aanroep aanmaken, mssn bedoel je dat?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

dsn!=database

Ik ga aan dat je bij die jdbc:odbc koppeling alleen een dsn aan kan geven en niet nog eens apart een database. Die zit vast aan de dsn die je gekozen hebt. Je kan wel vanuit code een dsn aanmaken, wat je handmatig met de ODBC Admin gedaan hebt, maar ik weet niet of dat ook met java kan.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
LordLarry schreef op 29 oktober 2002 @ 09:32:
dsn!=database

Ik ga aan dat je bij die jdbc:odbc koppeling alleen een dsn aan kan geven en niet nog eens apart een database. Die zit vast aan de dsn die je gekozen hebt. Je kan wel vanuit code een dsn aanmaken, wat je handmatig met de ODBC Admin gedaan hebt, maar ik weet niet of dat ook met java kan.
Excuus dan begreep ik je verkeerd! O-)
Pagina: 1