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 11/06/2007, 15h58   #1
Membre à l'essai
 
Inscription : octobre 2006
Messages : 63
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 63
Points : 21
Points : 21
Par défaut [PRO*C] GCC et "EXEC SQL "

Bonjour,
Je découvre le pro*c.

En voulant compiler une application pro*c avec gcc j'obtient toujours des messages d'erreurs comme :

" expected '=', ',', ';', 'asm' or '__attribute__' before 'SQL' "

pour des lignes de type :

" EXEC SQL INCLUDE sqlca; "


Je compile avec gcc en utilisant : " gcc programme.c - o programme
-I$(ORACLE_HOME)/plsql/include
-I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/precomp/public
-I$(ORACLE_HOME)/lib -lclntsh "

Les droits d'acces aux répertoires référencés ont l'air ok.
Pouvez vous m'aider ?
jph_void est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 18h32   #2
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 104
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 104
Points : 38
Points : 38
essaie ça plutôt :

EXEC SQL INCLUDE SQLCA.H;

Mais sinon mets + de code pour voir exactement comment tu as fait
tchoimars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 18h56   #3
Membre à l'essai
 
Inscription : octobre 2006
Messages : 63
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 63
Points : 21
Points : 21
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
/*fichier.h*/
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
 
EXEC SQL INCLUDE sqlca;
 
int choice;
 
 
EXEC SQL BEGIN DECLARE SECTION;
	 int listAnnee;			
	 varchar EnameVar[11];	
	 char Job[10];		
	 char HireDate[11];
	 char SQLSTATE[6];
EXEC SQL END DECLARE SECTION;
En fait le c'est le mot clef EXEC qui pose probleme au compilateur.
Aparement il faut utiliser l'utilitaire proc (qui est un précompilateur pro*c) qui va générer un fichier .c traditionnel. Mais je ne suis pas sur. Surtout que j'ai vraiment du mal a manipuler cet utilitaire (include manquants).
jph_void est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 09h45   #4
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 104
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 104
Points : 38
Points : 38
Ahhh ben oui tu m'en diras tant
J'avais pas exactement compris ton problème en fait ...

Quand tu programmes en PRO*C, tu commences toujours par faire appel au pré compilateur proc sur ton fichier ('.pc' en général) et le résultat de cela est un fichier ('.c' en général) qui lui est compilable avec un cc ou gcc classique.
Effectivement il est impossible de compiler directement ton code source PRO*C avec les compilateurs C.

Par exemple, dans un makefile ça donnerait un truc comme ça :

Code :
1
2
3
4
5
6
 
main.o : main.c prog1.o prog2.o 
	cc -g -o main.o -c main.c ${CFLAGS} -I$(INCLUDE)
 
main.c: main.pc prog1.h prog2.h 
	proc include=./source/include iname=main.pc
tchoimars 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 14h33.


 
 
 
 
Partenaires

Hébergement Web