IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Comment se connecter avec ADODB


Sujet :

JDBC Java

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Comment se connecter avec ADODB
    Bonjour,

    Actuellement je me sert d'un fichier excel pour extraire des données d'une base.
    J'utilise ce code pour me connecter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Set cn = CreateObject("ADODB.Connection")
        With cn
            .Provider = "OLEDB;Provider=MSDAORA.1;Password=XXXXX;User ID=XXXXXX;Data Source=AUTACS120000"
            .Open
        End With
    Je souhaiterais changer et passer par java afin de récupérer les données.
    Il y a t'il un moyen?

    Cordialement
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    Bonjour,

    Questions :
    1) Si tu utilises MSDAORA.1, je suppose que tu veux récupérer des données d' une base Oracle ?
    2) quand tu dis passer par java afin de récupérer les données tu veux les mettre où ces données après récupération ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonjour,
    Effectivement, c'est bien une base Oracle.

    C'est une base contenant des données de documents.Pour chaque document il y a plusieurs champs dont un qui contient l'état du document (Approuvé, en cours de validation etc....).
    Moi je souhaite juste récupérer le champs Etat. Avec excel j'y arrive très bien mais je voudrais le faire avec Java.
    je suis sur une piste avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oracle.jdbc.driver.OracleDriver
    mais j'ai un pb avec le chemin de ma base.
    Cordialement
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    je suis sur une piste avec oracle.jdbc.driver.OracleDriver
    C'est un peu mince ...

    Pour aller chercher un enregistrement dans une base Oracle, il faut ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            String url = "jdbc:oracle:thin:@leNomDuServeur:1521:leNomDuServiceTNS";
            Connection conn = DriverManager.getConnection(url, utilisateur, motDePasse);
            Statement statement = conn.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT Etat FROM MaTableDocuments");
     
            resultSet.next();
            System.out.println(rs.getString("Etat"));
            conn .close();
    Bien entendu, cet exemple n'est pas opérationnel (il ne retourne que le 1er enregistrement de la table)
    Il faut que tu en dises un peu plus sur comment tu veux retrouver l'état d'un document particulier (avec son numéro par exemple)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    Voici le code dont j’essaie de me servir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        try
     
    {
     
    Class.forName("oracle.jdbc.driver.OracleDriver");
     
    String connex = "jdbc:oracle:thin:AUTACS120000, XXXX, XXXX"; //aussi tenté "jdbc:oracle:thin:XXXX/XXXX:@AUTACS120000"
    Connection con = DriverManager.getConnection(connex);
    Statement stm = con.createStatement();
    ....
    J'ai un message d'erreur me disant que le chemin de la base est incorrect.
    J'ai essayé différents drivers (thin, oci) et methode de connexion (trouvé ici)mais rien ni fait.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    as-tu essayé avec le @ avant le nom du serveur comme cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String connex = "jdbc:oracle:thin:@AUTACS120000, XXXX, XXXX";
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Re,

    Oui j'ai aussi essayé avec le @.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    J'ai un doute.

    Avec Excel, tu utilises AUTACS120000 comme Data Source.
    Mais au vu de la chaîne de connexion dans Excel, j'ai l'impression qu'il s'agit du nom d'une source sur ton poste local
    et non pas du vrai nom de la base de données sur le serveur Oracle.

    Si c'est le cas, cette source est visible sur ton poste dans les "sources de données ODBC" et elle contient le vrai nom de la base.

    C'est une hypothèse bien sûr.

    Après, il est peut-être plus simple de demander confirmation du nom de la base auprès de l'administrateur.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  9. #9
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Re,

    Merci
    Je vais regarder de ce coté.
    et je reviens!!
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  10. #10
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonjour,
    Effectivement il y à bien du "TNS"

    Mon fichier TNSNAMES.ORA se trouve dans : "C:\ProgramData\Oracle" (il y a aussi un sqlnet.ora)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    AUTACSRV120000, AUTACSRV120000.world =
    	(DESCRIPTION = 
    		(ADDRESS_LIST = 
    			(FAILOVER = ON)
    			(LOAD_BALANCE = OFF)
    			(ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas01.noe.rct.fr)(PORT = 1521))
    			(ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas02.pcy.rct.fr)(PORT = 1521))
    		)
    		(LOAD_BALANCE = YES)
    		(CONNECT_DATA = 
    			(SERVER = DEDICATED)
    			(SERVICE_NAME = AUTAC_fes.dbaas.rct.fr)
    		)
    pour tester j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.sql.*;
     
    public class Main {
      public static void main(String[] args) throws Exception {
        System.setProperty("oracle.net.tns_admin", "C:/ProgramData/Oracle"); // tester aussi avec C:\ProgramData\Oracle
        String dbURL = "jdbc:oracle:thin:@AUTACSRV120000";
     
        Class.forName ("oracle.jdbc.OracleDriver");
     
        Connection conn = null;
        Statement stmt = null;
     
        try {
          conn = DriverManager.getConnection(dbURL, "XXX", "XXX"); // Je ne laisse pas XXX
     
          System.out.println("Connection established");
     
          stmt = conn.createStatement();
     
          ResultSet rs = stmt.executeQuery("SELECT dummy FROM dual");
     
          if (rs.next()) {
            System.out.println(rs.getString(1));
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
        finally {
          if (stmt != null) try { stmt.close(); } catch (Exception e) {}
          if (conn != null) try { conn.close(); } catch (Exception e) {}
        }
      }
    }
    retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "main" java.sql.SQLRecoverableException: Erreur d'E/S: Inval
    id connection string format, a valid format is: "host:port:sid"
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  11. #11
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    Bon, je suis loin d'être un expert en connexion Oracle,
    mais tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String dbURL = "jdbc:oracle:thin:@AUTACSRV120000";
    alors que la chaîne que j'ai utilisée est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url = "jdbc:oracle:thin:@leNomDuServeur:1521:leNomDuServiceTNS";
    donc, il semble qu'il te manque 1521:leNomDuServiceTNS c'est à dire le port et le sid.

    en regardant ton fichier, il semble que le nom du service serait AUTAC_fes.dbaas.rct.fr et le numéro de port 1521
    du coup, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String dbURL = "jdbc:oracle:thin:@AUTACSRV120000:1521:AUTAC_fes.dbaas.rct.fr";
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  12. #12
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    Le probleme viens de mon fichier .ora plus précisément de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AUTACSRV120000, AUTACSRV120000.world
    j'ai modifié le fichier .ora en laissant juste :
    et la j 'arrive a me connecter avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String dbURL = "jdbc:oracle:thin:@AUTACSRV120000";
    avec le fichier .ora d'origine si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String dbURL = "jdbc:oracle:thin:@AUTACSRV120000, AUTACSRV120000.world";
    il y a plantage.
    Le probleme est que je ne peux pas laisser le fichier modifier.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Avec le driver java, tu peux te passer de ton fichier .ora et mettre directement tout ce qu'il faut dans la string JDBC: le serveur, sont port et son TNS. Tout ça se trouve dans ton .ORA, y a qu'à copier / coller

    Et par expérience, c'est bien plus facile de se connecter comme ça que de créer un .ora potable


    un truc du genre

    jdbc:oracle:thin:@infra-dbaas01.noe.rct.fr:1521:AUTAC_fes.dbaas.rct.fr

Discussions similaires

  1. [Oracle] Comment me connecter avec eclipse
    Par empochez dans le forum JDBC
    Réponses: 12
    Dernier message: 04/06/2011, 18h18
  2. comment se connecté avec un nas?
    Par keokaz dans le forum Réseau
    Réponses: 2
    Dernier message: 17/05/2010, 18h36
  3. Comment on connecte un programme Java avec une base de données FireBird?
    Par Gomez dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 16/02/2007, 10h21
  4. Réponses: 5
    Dernier message: 30/08/2006, 15h29
  5. [BDD] Comment Executer Une SP Mysql avec ADODB depuis PHP
    Par audreyc dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/03/2006, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo