Utilisation de oracle en c++

Signaler
Messages postés
6
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
7 mai 2008
-
Messages postés
3
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
13 juin 2011
-
comment je peux utiliser oracle 9i en c++
je veux bien voir un exemple simple si possible
j'ai besoin de votre aide

8 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Oracle propose une bibli nommée occi. Voire leur site pour des exemples et de la doc.

Sinon, il y pas mal de bibli sensées pouvoir se connecter à à peu près n'importe quoi. Nottement sous C++ Builder, y a le BDE ou encore Direct Oracle Access. Sous VC y a ADO/OBDC avec lequel on doit pouvoir faire quelque chose.
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
Oracle fournit 3 API  C/C++ :

    - PRO* (C/C++): tu codes directement en sql dans ton source qui est ensuite passé à un précompilateur fourni par oracle qui génère un code source compilable par ton compilateur. Le code final généré (qui est illisible) utilise les librairies SqlLib d'Oracle. L'avantage est que tu code du SQL dans ton source, nativement, c'est assez sympa mais chiant à débugger et tu doit compiler un exe pour chaque version d'Oracle. Je l'utilise au boulot sur des projets C d'interface temps réel entre gros systèmes.

    - OCI (C): c'est l'api de référence d'Oracle, la voie "royale" d'Oracle mais super complexe. Il faut utiliser des wrapper C ou C++ qui simplifie le job.. Il en existe plusieurs sur le marché.. Je met suis fait ma propre lib c++ que j'utilise au boulot sur des projet C++

    -  OCCI (C++) : C'est le wrapper C++ fournit par Oracle depuis Oracle 9i (donc versions antérieures dans le baba). C'est bien fait, utilise beaucoup, les templates. Les premières moutures (beaucoup de patchs) n'était pas assez matures et le soucis est tu dois linker avec des dll qui exporte les classes compilées par Oracle et donc limité par les compilateurs supportés par Oracle car pour du C++, il faut que le DLL soit compilée avec le même compilo que ton prog.

Ensuite tu as le reste, OLEDB, ODBC, ADO, ..... qui ne sont pas optimisés, ne peuvent tirer parti des fonctions spécifiques d'Oracle, des fonctionnalités Objet, ...

Le mieux reste OCI si tu toruve un bon wrapper, simple et qui te convient... Sinon Pro*c est simple à coder
Ou alors la solution "de VBiste" avec ADO, ...
Messages postés
6
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
7 mai 2008

merci pour votre reponse
j'ai decidé d'utiliser occi
je peux trouver un petit exemple?
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
... sur le site d'Oracle...
Messages postés
6
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
7 mai 2008

quand je met

#include
#include <occi.h>
using namespace oracle:occi;
using namespace std;

102 erreurs sont affichés
les erreurs sont de ce type:

d:\oracle\ora90\oci\include\occicommon.h(164) : error C2057: expected constant expression
d:\oracle\ora90\oci\include\occicommon.h(165) : error C2065: 'SQLT_RID' : undeclared identifier

comment je peux corriger?
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
[troll]Abandonne la compilation du C++, et passe en Delphi, très approrié pour Oracle !/troll

Y a pas deux * deux points à using namespace oracle::occi; ?

La doc de occi.
Messages postés
3
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
13 juin 2011

Bonjour,
pour le #include <occi.h>, je n'arrive pas a trouver sur le net comment ajouter cette biblio à cygwin
Messages postés
3
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
13 juin 2011

Bonsoir,
finalement j'ai changé cygwin par Mingw et ca roule comme sur des roulettes, après configuration biensûr