Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2007, 23h40   #1
Invité régulier
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 6
Points : 6
Par défaut [PRO*C] Probleme de definition des EXEC SQL

Bonjour à tous

Je requiers votre aide car je suis sur un petit programme en C me permettant d'administrer une base de données MySQL.

Je souhaiterais utiliser les requetes embarqués dans le code C avec les 'EXEC SQL', mais dés que j'écris une ligne commençant par EXEC SQL ...

j'ai l'erreur suivante :

Pourriez vous m'aider à trouver la lumiere ??

PS : pour ce soucis c'est bon, je passerais par l'APPI MySQL, mais maintenant je voudrais utiliser PRO*C. Mais là, je me vois decouvrir une erreur pas trés claire.
Estudiante est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 00h17   #2
Rédacteur/Modérateur

 
Avatar de Skyounet
 
Homme Benjamin Roux
Expert Silverlight et Windows Phone
Inscription : mars 2005
Messages : 6 384
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Roux
Âge : 25
Localisation : Canada

Informations professionnelles :
Activité : Expert Silverlight et Windows Phone
Secteur : Conseil

Informations forums :
Inscription : mars 2005
Messages : 6 384
Points : 9 549
Points : 9 549
Citation:
Envoyé par Estudiante
Bonjour à tous

Je requiers votre aide car je suis sur un petit programme en C me permettant d'administrer une base de données MySQL.

Je souhaiterais utiliser les requetes embarqués dans le code C avec les 'EXEC SQL', mais dés que j'écris une ligne commençant par EXEC SQL ...

j'ai l'erreur suivante :

Pourriez vous m'aider à trouver la lumiere ??
Ben sans code ça peut-être dur.
__________________
Mon Blog
Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
Mon espace perso


La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein
Skyounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 15h28   #3
Rédacteur/Modérateur

 
Avatar de Skyounet
 
Homme Benjamin Roux
Expert Silverlight et Windows Phone
Inscription : mars 2005
Messages : 6 384
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Roux
Âge : 25
Localisation : Canada

Informations professionnelles :
Activité : Expert Silverlight et Windows Phone
Secteur : Conseil

Informations forums :
Inscription : mars 2005
Messages : 6 384
Points : 9 549
Points : 9 549
Alors là j'avoue c'est pas mal.

Même le dernier #include.

Quelle est la bibliothèque que tu utilises ?
Je ne la connais pas mais je ne pense pas que ce soit de cette manière qu'on l'utilises. Un seul conseil lis la doc.
__________________
Mon Blog
Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
Mon espace perso


La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein
Skyounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 15h30   #4
Membre actif
 
Avatar de Marco85
 
Inscription : septembre 2005
Messages : 213
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : septembre 2005
Messages : 213
Points : 154
Points : 154
C'est quoi ce langage ?

Effectivement, si tu nous dis quelle bibliothèque tu utilises on pourra peut-être t'aider, mais là, c'est trop balaise pour moi ...
__________________
If you cannot explain a concept to a six year-old, then you do not fully understand it. [Albert Einstein]
Marco85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 19h27   #5
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 494
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 494
Points : 28 782
Points : 28 782
Envoyer un message via MSN à Médinoc
Généralement, les EXEC SQL montrent un programme en Pro*C, qui n'est pas du C ordinaire : En gros, c'est du C avec du SQL.

Mais ce n'est pas du C++ non plus : Que vient faire iostream.h ici ?
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 21h25   #6
Rédacteur
 
Avatar de Emmanuel Delahaye
 
Inscription : décembre 2003
Messages : 14 502
Détails du profil
Informations personnelles :
Âge : 55
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2003
Messages : 14 502
Points : 18 103
Points : 18 103
Citation:
Envoyé par Estudiante
Code :
#include <"C:\Program Files\C-Cpp\include\c++\3.4.2\backward\iostream.h">
Pas du C et du très mauvais C++.

[-mod- si tu veux faire du C++, c'est un autre forum. Je dois déplacer la discussion ?]
__________________
Pas de Wi-Fi à la maison : CPL

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://www.bien-programmer.fr/
http://bien-programmer.forum-actif.net/forum.htm
Emmanuel Delahaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 22h25   #7
Rédacteur/Modérateur
 
Avatar de millie
 
Inscription : juin 2006
Messages : 6 929
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juin 2006
Messages : 6 929
Points : 6 714
Points : 6 714
Citation:
Envoyé par Emmanuel Delahaye
[-mod- si tu veux faire du C++, c'est un autre forum. Je dois déplacer la discussion ?]
Je pense qu'elle a inclu le header pour rien, vu qu'elle utilise printf et qu'elle a inclu stdlib.h (et pas cstdlib) et stdio.h (et pas cstdio). Donc a priori, ça devrait rester dans C.
__________________
Je ne répondrai à aucune question technique en privé
millie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 22h55   #8
Membre Expert
 
Avatar de zooro
 
Inscription : avril 2006
Messages : 922
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 922
Points : 1 149
Points : 1 149
Je connaissais cette syntaxe pour le Pro*C (Oracle) et pour ECPG (PostgreSQL), mais pas pour MySQL.

Une brève recherche sur leur site ne m'a pas permis de trouver d'équivalent pour MySQL. Cependant, il semble exister une API C. Je te renvoie à la doc: http://dev.mysql.com/doc/refman/5.0/fr/c.html

Je n'ai pas réussi non plus à trouver un exemple de code C, pour voir à quoi ressemble l'utilisation de cette API.
__________________
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
zooro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 13h16   #9
Invité régulier
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 6
Points : 6
Donc vu que j'ai tout melangé, je vais recommencer correctement.

Tout d'abord, je remercie sur l'existence de l'API mysql et pour les SQL embarqué pour ORACLE, j'utilise PRO*C.

le code avant la precompilation est :

Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
 
// Declarations des VARIABLES globales de communication avec SQLPLUS
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR Login[20], Password[20];
EXEC SQL END DECLARE SECTION;
 
 
// Inclusion de la zone de communication SQLCA
EXEC SQL INCLUDE SQLCA.H;
 
 
//Prototype des fonctions
void Connexion_SQL();
void Erreur_SQL();
 
 
//Fonction Principale
int main() {
 
Connexion_SQL();
 
}
 
 
//Fonction de connexion à la BDD Oracle
void Connexion_SQL() {
 
printf("Veuillez saisir votre login :\t");
scanf("%s",&Login);
printf("Veuillez saisir votre password :\t");
scanf("%s",&Password);
 
EXEC SQL WHENEVER SQLERROR DO Erreur_SQL();
EXEC SQL CONNECT :Login IDENTIFIED BY :Password;
 
}
 
 
//Fonction pour gerer les erreurs SQL
void Erreur_SQL() {
 
printf("Erreur SQL : %s\n",sqlca.sqlerrm.sqlerrmc);
exit(1);
 
}
Apres avoir fait la commande proc <le nom du fichier.pc>, tout se passe bien.
Mais quand viens le moment de la compilation du fichier .c créer juste avant, le compilateur me met une erreur sans ligne qui est la suivante :

Code :
  [Linker error] undefined reference TO `sqlcxt'
Donc je voudrais savoir s'il y a une librairie qu'il me manque ... ar j'ai mis le chemin $ORACLE_HOME/precomp/lib et $ORACLE_HOME/lib.
Estudiante est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 14h02   #10
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 494
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 494
Points : 28 782
Points : 28 782
Envoyer un message via MSN à Médinoc
Est-ce que la bibliothèque en question (la bibliothèque elle-même, pas seulement le chemin de son dossier) est dans la ligne de commande du linker ?
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 14h20   #11
Invité régulier
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 6
Points : 6
Ah non, il n'y pas directement le nom de la bibliotheque dans l'editeur de lien.

Mais il me faudrait savoir quelle bibliotheque utilisée sous Oracle 10g car en faisant des recherches sur le NET, je n'ai trouvé que des reponses mais sous Oracle 7/8i et les bibliotheques concernées ne possédent plus ce nom...

PS : j'ai utilisé la orasql10.lib et la orasqx10.lib et ca a l'air de fonctionner !

Merci en tout cas pour tout ...
Estudiante est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h41.


 
 
 
 
Partenaires

Hébergement Web