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 :

connexion bddoracle en C/C++


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut connexion bddoracle en C/C++
    Bonjour,
    Désolé pour le double post, j'ai utilisé le mauvais pseudo!
    j'ai un petit problème:
    je dois faire communiquer mon appli en C/C++ avec une base de données sous Oracle. j'ai pu voir sur le site un tuto http://vicenzo.developpez.com/tutoriels/c/ocilib

    Est-ce le seul moyen? Est-on obligé d'installer des dll externes pour faire ceci ?

    Merci d'avance pour votre aide

  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,

    pour accéder à oracle, il te faut une API cliente.
    Oracle fournit des API C (OCI) et C++ (OCCI) pour accéder à des bases de données Oracle.

    Ensuite, il existe des wrappers autour de OCI (qui est une API tres complexe) comme OCILIB. Les frameworks comme Qt implementent leurs drivers sur OCI.

    OCCI est un mauvais choix car :
    - tres tres buggé depuis sa création
    - peu de compilateurs supportés (de plus peu de versions de ceci)

    Il existe aussi 2 drivers commerciaux qui implémentent eux meme le protocole réseau d'Oracle (SQL*NET). Mais c'est pas donné et toujours risqué car Oracle ne documentant pas ce protocole, les futures compatibilités sont pas sures (mais bon...)

    Donc, au final, tu es olbigé de te baser sur un client Oracle.

    depuis 10g, Oraclle ayant compris que c'était galère d'installer en runtime un client oracle, de plusieurs centaines de Mégas , avec installateur et tout les tralala, fournit aussi un "Instant client". Ce client est réduit à 2-3 librairies partagées que tu peux redistribuer avec ton appli.

    Donc, maintenant, à toi de choisir ton API utilisateur, OCILIB ou autre !
    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 émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    merci beaucoup pour ta réponse très détaillée!
    je vais voir avec ma boite si OCILIB leur convient!

    merci encore

  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
    - si tu codes nativement en C++ et que tu utilises à fond la STL, OTL peut être très intéressant (quoi que moins performant que OCILIB et beaucoup moins riche) et lui aussi en open source

    - si tu codes en C ou en C++ mais que utiliser une API C t'es égal, OCILIB est le wrapper C le plus abouti, le plus riche et le plus mature.

    Les autres wrappers/librairies C/C++ au dessus de OCI ne valent pas le coup (buggés, peu de support des fonctionnalités Oracle, non maintenues..).

    Maintenant, si tu utilise un framework particuliers comme Qt ou autre, vois s'ils non pas leur propre driver...

    Encore une fois, OCILIB est l'API qui supporte le plus de fonctionnalités Oracle... Ne serait-ce que la clause SQL "returning into", le full support des objets, des collections, l'unicode, le mulithreading by oracle, etc...
    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 expérimenté Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Par défaut
    Ca n'empêche pas l'installation de dll oracle, mais Pro*C (du C/C++ avec un préprocesseur sauce Oracle) permet de travailler avec une base Oracle, de manière simple et efficace.
    De plus, ce n'est pas très compliqué à mettre en oeuvre.

  6. #6
    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
    Effectivement, Pro*C est une option...

    Ce qui me derange énormément, avec Pro*C :

    - tu dois compiler un binaire pour chaque version d'oracle ( par exemple au taf, je compile 5 versions de mes applis PRO*C (8.17, 9.0; 9.2, 10.2, 11.1)... C'es chiant !
    - tu dois avoir un client Oracle pour compiler (c'est con, mais c'est pratique de pouvoir compiler hors environnement oracle)
    - créer une librairie en pro*c (statique / shared) et qui plus est en multithread (ca, c'est galère)
    - faible support pour C99 (on est en 2009, hum...)
    - peu adapté au multi-tiers (pour sur !)
    - tu as déjà vu la tête d'un fichier *.c généré par PRO*C ? (c'est une plaie à débugger !)
    - faible support Unicode (on est en 2009..hum..)
    - gestion des curseurs archaïque et rigide
    - couvre beaucoup moins de fonctionnalités Oracle que OCI

    Pour moi, le seul intérêt de pro*c est la vérification du code SQL à la précompilation et c'est assez productif

    Et si aucun des points cités ne gêne michel.di, qu'il envisage donc aussi PRO*C

    J'utilise PRO*C quotidiennement au taf... C'est une bon produit mais je préfère mille fois faire du OCI...
    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

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

Discussions similaires

  1. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  2. [CR 8.5][Web] demande de connexion récurrente.
    Par Edison dans le forum Connectivité
    Réponses: 4
    Dernier message: 09/07/2002, 17h48
  3. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  4. Connexion ODBC
    Par Anonymous dans le forum Réseau
    Réponses: 2
    Dernier message: 23/04/2002, 12h10
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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