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] Commande EXEC SQL


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut [PRO*C] Commande EXEC SQL
    Bonjour,

    J'ai un programme C sous Visual C++ 6.0 et j'aimerais lancer dedans des commandes en PL/SQL.

    Comment faire ? (Passer par du PRO* C ? Peut-il lancer du PL/SQL ? Je n'en suis pas sûr) Sinon par quel autre moyen ?

    Voici pour info la commande PL/SQL que j'aimerais lancer, elle lit une donnée dans une table, et en insère dans une autre table :

    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
    DECLARE
    strCodesPartenai CHAR(60);
    strSsChaine CHAR(5);
    BEGIN
    select VAL INTO strCodesPartenai from TPARTENAI where ARG='12151030000';
    FOR i IN 0..55 LOOP
    	IF MOD(i,5) = 0 THEN
      		strSsChaine := SUBSTR(strCodesPartenai, i + 1,5);
      		IF strSsChaine != ' ' THEN
     			INSERT INTO temp VALUES(strSsChaine);
     		END IF;
     	END IF;
    END LOOP;
    END;
    /

    Merci pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut suite
    J'ai trouvé ceci :

    "
    Embedding PL/SQL Blocks :
    The Pro*C/C++ Precompiler treats a PL/SQL block like a single embedded SQL statement. So, you can place a PL/SQL block anywhere in a program that you can place a SQL statement.
    To embed a PL/SQL block in your Pro*C/C++ program, simply bracket the PL/SQL block with the keywords EXEC SQL EXECUTE and END-EXEC as follows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EXEC SQL EXECUTE
    DECLARE
    ... 
    BEGIN 
       ... 
    END; 
    END-EXEC;
    The keyword END-EXEC must be followed by a semicolon.

    After writing your program, you precompile the source file in the usual way.

    When the program contains embedded PL/SQL, you must use the SQLCHECK=SEMANTICS command-line option, since the PL/SQL must be parsed by the Oracle Server. SQLCHECK=SEMANTICS requires the USERID option also, to connect to a server. For more information, see the section "Using the Precompiler Options" on page 7 - 9.
    "

    Apparemment donc, aucun pb à faire des appels PL/SQL en PRO*C.

    J'ai donc une autre question !

    Quelqu'un sait-il comment paramétrer les options de compilation de Visual C++ 6.0 pour compiler en Pro*C ?

    Merci beaucoup si qq sait.

  3. #3
    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
    Dans les options du projet, tu sélectionnes ton fichier et tu vas sur l'onglet custom build :

    Dans le champ 'command', tu tapes :

    $ORACLE_HOME\proc src\$(InputName).pc CONFIG=$CONFIG_FILE
    remplace $ORACLE_HOME par ton oracle home
    remplace $CONFIG_FILE par le nom du fichier de configuration pro*c

    Dans le champ 'outputs' :

    $APP_SRC_FOLDER\$(InputName).c
    remplace $APP_SRC_FOLDER par le dossier ou tu veux générer le fichier c.

    C'est à faire pour chaque fichier à précompiler.

    Une fois les fichiers c générés, tu les rajoutes une bonne fois pour toute au projet.


    Pour le fichier de config pro*c, voici celui que j'utilise dans mes projets :

    MODE=ORACLE
    DBMS=V7
    CODE=ANSI_C
    SYS_INCLUDE=%chemin d'accès aux headers du sdk window%
    INCLUDE=%chemin d'accès à mes librairies%
    INCLUDE=%chemin d'accès à mes sources%
    INCLUDE=%chemin d'accès auw headers pro*c%
    PARSE=FULL
    THREADS=YES
    SQLCHECK=SEMANTICS
    USERID=usr/pwd@db
    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. EXEC:SQL command EXEC no valid
    Par impactcollege dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2010, 10h52
  2. [PRO*C] GCC et "EXEC SQL "
    Par jph_void dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 12/06/2007, 09h45
  3. [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
  4. Réponses: 10
    Dernier message: 02/03/2006, 11h36
  5. [Système] commande exec()
    Par Stef784ever dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 10h53

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