Avatar billede bris Nybegynder
27. juni 2003 - 13:08 Der er 13 kommentarer og
1 løsning

ODBC og Access

Hejsa!

Jeg skal via java connecte til en accessdatabase, og bruger følgende driver:

driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
sourceURL = "JDBC:ODBC:TestDB";

Når jeg skal connecte til databasen, så bruger jeg følgende:

dbCon = DriverManager.getConnection(sourceURL, user, pass);

Og bruger så min connection til forespørgsler - ganske som fra bogen! MEN! databasen er beskyttet via et kodeord, og hvis jeg bruger putter det ind i min getConnection(), så melder den fejl.. Og der hører ingen bruger til det password, som access har (måske brugeren på maskinen?).

Hvordan får jeg den til at connecte ordentligt med password?
Avatar billede olly Nybegynder
27. juni 2003 - 13:32 #1
Prøvet med "" som bruger og så sætte passwordet ind?
Avatar billede bris Nybegynder
27. juni 2003 - 13:48 #2
nope virker ikke..
Avatar billede olly Nybegynder
27. juni 2003 - 14:03 #3
Du kan når du opretter din Access ODBC source under avanceret sætte brugernavn og password. Password skal så sikkert være passwordet til databasen.
Avatar billede arne_v Ekspert
27. juni 2003 - 14:36 #4
Jeg tror ikke at du kan angive det såkaldte "database password"
via JDBC.

Du kan bruger brugernavn & password via MDW fil via JDBC, men
det er også noget helt andet.
Avatar billede riversen Nybegynder
27. juni 2003 - 14:53 #5
hvad med
dbCon = DriverManager.getConnection( "jdbc:odbc:navnetpåodbclinket" );
Avatar billede mutantboy Nybegynder
01. juli 2003 - 11:58 #6
Her er noget der virker.

****Connection object****

import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
import java.io.InputStream;
import java.sql.ResultSet;
import java.sql.Statement;

public class DbConnection {

    private  Connection con;


    public DbConnection() {

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (Exception e) {
            System.out.println("Failed to load JDBC/ODBC driver.");
            return;
        }

        try {
            con = DriverManager.getConnection("jdbc:odbc:kunde2", "", "");

        }// End Try
        catch (Exception e) {
            e.printStackTrace();
        }// End Catch
    }//End Constructor

    public Connection getConnection() {
        return this.con;
    }


}// End DbConnection


****DBAccess****


import java.sql.*;
import java.net.URL;
import java.util.*;

public class DbAdgang
  {
    private DatabaseMetaData dma;
    private static Connection con;

public  DbAdgang()
    {
    OpenDb("Kunde6","","");
   
    }
    public DbAdgang (String odbcdrv, String user, String passw)
    {
    OpenDb(odbcdrv, user, passw);
    }
   
private void OpenDb(String odbcdrv, String user, String passw)
      {
      String url = "jdbc:odbc:"+odbcdrv;
      try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection(url,user, passw);
        dma = con.getMetaData();
        System.out.println("Connected to: " + dma.getURL());
        System.out.println("Driver " + dma.getDriverName());
        }//slut try
        catch(Exception e){
            System.out.println("her? " +e);
        }//slut catch
      }
public void CloseDb()
    {
    try{
    con.close();
        }
    catch(Exception e){
    System.out.println("Fejl vel close(): "+e);
        }
    }
public static Connection getDbCon()
    {
    return con;
    }
}


Håber det kan hjælpe dig

vh.

Danni
Avatar billede arne_v Ekspert
01. juli 2003 - 12:27 #7
Prøv lige at teste den kode med et database password - som altså ikke
er det samme som et brugernavn+password.
Avatar billede mutantboy Nybegynder
05. juli 2003 - 01:13 #8
ja så kommer der jo forhåbentligt fejl :-)
Avatar billede mutantboy Nybegynder
05. juli 2003 - 01:17 #9
hvis du specificerer brugernavn og kodeord i access, så skal du rette alle de steder hvor jeg har ("kunde6","",""), til f.eks. ("kunde6",bruger","pw").

jeg er ikke god til at formulere mig, men forstår du?
Avatar billede bris Nybegynder
31. juli 2003 - 11:26 #10
ja, men du skal regne med, at jeg skal ikke taste brugernavn ind, men kun password.. Det gør en forskel idet, at den tror, at der bare ingen bruger skal være.. Og det skal der åbenbart..
Avatar billede arne_v Ekspert
31. juli 2003 - 11:32 #11
Jeg tror desværre at min 27/06-2003 14:36:47 kommentar er korrekt.

Det kan ikke lade sig gøre.

Og du bliver nødt til at skifte security model til MDW username/password.

(det virker til gengæld med JDBC !)
Avatar billede arne_v Ekspert
31. juli 2003 - 11:32 #12
Og det er vel egentligt et svar.
Avatar billede arne_v Ekspert
31. juli 2003 - 11:32 #13
Men nok et trist svar.

:-(
Avatar billede arne_v Ekspert
27. august 2003 - 23:52 #14
bris>

Tid at lukke spørgsmålet ?
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