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 :

[PRO*C] GCC et "EXEC SQL "


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    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 ?

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    essaie ça plutôt :

    EXEC SQL INCLUDE SQLCA.H;

    Mais sinon mets + de code pour voir exactement comment tu as fait

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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).

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/02/2009, 17h36
  2. [PRO*C] Probleme de definition des EXEC SQL
    Par Estudiante dans le forum Interfaces de programmation
    Réponses: 10
    Dernier message: 29/05/2007, 14h20

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