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] Langage c et requete base oracle


Sujet :

Interfaces de programmation Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par défaut [PRO*C] Langage c et requete base oracle
    Bonjour,
    je cherche un tutoriel permettant de réaliser des requêtes SQL sous oracle dans un programme en c
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par défaut
    Personne pour me répondre?
    Mes recherches indiquent que le langage pro c permettent dexécuter des requêtes...
    Quelque connait un tuto sur le pro c?

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    peut-être sur le forum oracle ??

    http://www.developpez.net/forums/forumdisplay.php?f=42

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Tout dépend de la manière dont tu veux attaquer ta base oracle.
    Tu peux par exemple utiliser la bibliothèque OCI (fournie avec Oracle), qui permet de piloter complètement Oracle mais n'est pas très simple d'utilisation.

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re:
    En C, il y a au moins deux techniques très utilisées pour communiquer avec une base de données:
    1. Le SQL embarqué ou Embedded SQL : Il s'agit d'incorporer du code SQL dans ton programme C. Les commandes SQL sont précédées par EXEC SQL. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC SQL SELECT * FROM Table1;
    Avant de compiler, ton code C doit passer par le préprocesseur SQL, spécifique de chaque constructeur. Sous Oracle, l'environnement fourni pour faire du SQL embarqué s'applelle Pro*SQL.

    2. ODBC (OLE DataBase Connectivity)
    C'est une API qui permet de communiquer avec la quasi-totalité des serveurs de bases de données présentes sur le marché. Son utilisation requiert une certaine maîtrise du langage C, notamment la notion de pointeur, d'allocation dynamique , et de handle. Mais t'inquiète, il y a de bons tuos pour apprendre ODBC sur le Web.
    Sur le site de ENST
    Sur le site de EasySoft (En anglais)
    Et Sur lebdenat.africa-web.org. Tout en français, avec de superbes cours sur ODBC, COM, ...

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Je déterre le sujet pour vous demander à peu près la même chose.

    Simplement, je suis obligée d'attaquer ma base en Pro*C, j'ai pas le choix !

    Donc... y a-t-il des sites qui l'expliquent ?

    J'ai écrit un p'tit programme déjà, mais ça ne marche pas Et en plus, je suppose que l'appel de cette fonction ne marche pas dans mon programme en C, je n'arrive pas à m'en sortir. Le tout est appelé par de l'ADA...

    Un peu d'aide serait la bienvenue

    Voici le programme *.pc
    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
    20
    21
    22
    23
    24
     
    /*                          
     *   External files included
     */
     
    #include <stdio.h>
    #include <errno.h>
    #include <string.h>
    #include <malloc.h>
     
    EXEC SQL INCLUDE SQLCA.H;
     
     
    extern int small_tables()
    {
    EXEC SQL BEGIN DECLARE SECTION;
    EXEC SQL END DECLARE SECTION;
     
    EXEC SQL CREATE TABLE B111_TEST AS
    			SELECT * FROM B111_TABLE
    			WHERE DB_TYPE='DIS' OR DB_TYPE='AIS';
     
    return 0;
    }
    Et le programme C qui l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void CREATE ( user_log, user_status )
     
    	T_CLIENT_EXIT_STATUS *user_status;
    	//T_ENUM	user_log;
    {
     
    	printf("#### TEST DE CREATION DES TABLES ###\n");
    	DNB_small_tables();
     
    }
    Ce qui à mon avis ne va pas, c'est que je n'ai pas d'include particulier pour appeler le fichier .pc

    Enfin comme j'y connais rien, tout ne peut que m'aider !!!

    Merci par avance !

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Lucinda
    Je déterre le sujet pour vous demander à peu près la même chose.

    Simplement, je suis obligée d'attaquer ma base en Pro*C, j'ai pas le choix !

    Enfin comme j'y connais rien, tout ne peut que m'aider !!!
    Bah, commence par apprendre le langage SQL. Mauvais forum.

    http://www.developpez.net/forums/forumdisplay.php?f=42

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Je n'ai pas demandé de m'apprendre le langage SQL Même si je ne suis pas la meilleure loin de là, je pense pouvoir me débrouiller seule pour ce côté-ci.

    D'ailleurs je ne vois pas d'erreurs dans ma requête SQL... donc s'il y en a une, je veux bien qu'on me le dise !

    Pour finir, j'ai trouvé un bouquin sur le Pro*C. Et l'exemple que tu m'as donné est pas mal, mais malgré tout, il est tout seul. Je dois appeler ma fonction dans un programme en C... alors ben

    Enfin si ce n'est vraiment pas le bon sujet, je vais poster de l'autre côté.

    Merci.

    EDIT : J'ai trouvé la raison ! C'est pas tant mon programme qui marchait pas, c'était en fait que j'avais appelé mon fichier .c de la même manière que le fichier .pc
    Comme le compilateur passe au final par le compilateur en C... ben ça marchait pas
    Bref, il faut savoir qu'il ne faut pas les appeler pareil !!!

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

Discussions similaires

  1. Requete gourmande en base oracle 9I
    Par Mehdilis dans le forum Oracle
    Réponses: 1
    Dernier message: 29/06/2007, 08h48
  2. Langage c et requete base oracle
    Par manucha dans le forum Oracle
    Réponses: 2
    Dernier message: 16/02/2007, 11h13
  3. Envoyer une requete à une base Oracle
    Par chiheb dans le forum Oracle
    Réponses: 2
    Dernier message: 18/10/2006, 15h39
  4. [requete] Date de création d'une base oracle.
    Par Cyborg289 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/02/2006, 11h14
  5. Réponses: 3
    Dernier message: 17/05/2004, 17h28

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