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

Interfaces de programmation Oracle Discussion :

[OCILIB] Adresse IP du serveur base de données


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut [OCILIB] Adresse IP du serveur base de données
    Bonjour,

    j'utilise la bibliothèque OCILIB pour accéder à une base de donnée Oracle.

    C'est une bibliothèque impeccable et très efficace.

    Ci-dessous un exemple de code de connexion à une base de données locale et ça marche parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OCI_Connection *cn = OCI_CreateConnection("DBV8", "system", "manager", OCI_SESSION_DEFAULT);
    Mais le problème est le suivant :

    Qu'est ce que je dois modifier pour se connecter à une base de données distantes avec un port bien déterminé (1521 ou autre) ?

    Autrement dit, comment spécifier les paramètres : adresse IP du serveur Oracle et aussi le port dans la fonction de connexion.

    Je vous remercie pour votre aide.

    Bien à vous.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Salut,

    OCILIB accepte toute les convention de nommage de service Oracle !

    On peut donc utiliser les mêmes chaines de connection que sous sql*plus

    Donc, OCI_CreateConnection() prend comme 1er paramètre le nom du service Oracle qui peut être :

    1 ==> un alias Oracle du tnsname.ora du client Oracle (si client Oracle "classique")

    Exemple d'un tnsname.ora

    ENV_PROD =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.56)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = ENV_PROD)
    )
    )

    Dans ce cas, il faut fournir "ENV_PROD" à OCI_CreateConnection()

    2 ==> une chaine simplifiée du type [SERVEUR ou IP]:[PORT]/[SERVICE_NAME]

    Toujours à partir de l'exemple précédent , on peut passer à OCI_CreateConnection() :

    "192.168.0.56:1521/ENV_PROD"


    3 ==> une chaine complète de connexion complète comme celle du tnsname.ora

    Toujours à partir de l'exemple précédent , on peut passer à OCI_CreateConnection() la chaine suivante :

    "ENV_PROD =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.56)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = ENV_PROD)
    )
    )"

    ==> il y aussi d'autres méthodes mais les 1 et 2 sont les plus courantes.

    A noter que si le client Oracle est un InstantClient, il faut utiliser la n°2
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Bonjour,

    Merci bien pour votre réponse. En fait j'ai essayé le code suivant mais sans résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cn = OCI_CreateConnection("192.168.7.105:1521/DBV8", "test", "test", OCI_SESSION_DEFAULT);
    Sachant que DBV8 est le nom de la base de données.

    Voici le message d'erreur exactement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-06401: NETCMN : désignation de lecteur non valide
    Je vous remercie pour votre aide.

    Bien à vous

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    en lancant SQL*PLUS :

    SQL*Plus: Release 10.2.0.1.0 - Production on Jeu. Mars 6 09:54:53 2008

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    Entrez le nom utilisateur : test/test@192.168.7.105:1521/DBV8

    Ca fonctionne ? Car chez moi, avec ocilib et sql*plus ca fonctionne.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    toujours pas :-(

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    et même ça marche pas avec SQL*Plus

    est ce qu'il y a une config à faire pour que ça marche ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/08/2010, 09h52
  2. Réponses: 4
    Dernier message: 20/05/2010, 10h31
  3. [AC-2003] Problème perte connection serveur base de données
    Par JPaul94300 dans le forum Modélisation
    Réponses: 0
    Dernier message: 18/03/2009, 15h05
  4. [ Serveur base de données en VB ]
    Par Arkoze dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/06/2007, 22h43
  5. Réponses: 23
    Dernier message: 13/03/2007, 11h04

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