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 :

[OCI] select parcourir résultat


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut [OCI] select parcourir résultat
    Bonjour,
    Je voudrais savoir comment parser le résultat d'un select, en gros ma requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char       *sql   = "select * from DM_LOCK_ITEM_VERSION where PRODUCT_ID=:id_produit and PROJECT_ID=:id_version and ITEM_SPEC_UID=:id_objet";
    je prépare bien la requête avec OCIStmtPrepare, ensuite je bind les 3 valeurs avec OCIBindByName, et j'execute la requête de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    status = OCIStmtExecute(svchp, sqlhp, errhp, 0, 0, (OCISnapshot *)NULL,
                                (OCISnapshot *)NULL, OCI_DEFAULT);
    je souhaiterai ensuite avoir la valeur des champs de chaque enregistrement lorsqu'il y en a

    Comment faire?

    Merci d'avance

  2. #2
    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
    il faut définir les buffers qui vont contenir les données avec OCIDefineByPos() pour colonne
    Pour récupérer le nombre de colonnes et toute les infos de chaque colonne : OCIAttrGet()
    il faut fetcher OCIStmtFetch()
    ...

    OCI n'est pas une API simple et requiert de l'apprentissage.
    Si tu veux persister avec OCI, commence par lire les docs.
    Il te faudra du temps pour assimiler tout ca et produire du bon code OCI.
    je te conseille de lire le guide sur OCI : HTML, PDF

    Encore une fois, je te préviens, partir de zéro pour développer une appli OCI / C / Oracle n'est pas productif pour l'appli avec laquelle tu débute.
    Ca va te prendre du temps si tu veux comprendre ce que tu fais.

    Si tu ne connais pas OCI, tu va devoir investir pas mal en temps...
    donc, soit bien sur que vouloir bosser en OCI avant de t'y mettre.

    Par rapport a ce que je te disais en chat, faut que les chefs du projet en question soient conscient du facteur temps si tu bosse en OCI directement.

    Bon courage
    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

  3. #3
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Merci bien pour ta réponse. Encore....

    Le select est la dernière chose qu'il me reste à faire, l'insert et le delete marchent, je n'ai plus qu'à regarder si j'ai des résultats dans mon select et après j'ai fini.

    En fait ça ne vient pas de mon chef de projet mais des admins réseaux. Quand j'ai demandé OCILIB, ils m'ont dit qu'il y avait OCI et que c'était suffisant!
    Si ça ne tenait qu'à moi....
    Je t'embêterai moins au moins! ^^

    Je vais me débrouiller avec ce que tu m'as donné!

    Merci encore

  4. #4
    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
    Citation Envoyé par michel.di Voir le message
    En fait ça ne vient pas de mon chef de projet mais des admins réseaux. Quand j'ai demandé OCILIB, ils m'ont dit qu'il y avait OCI et que c'était suffisant!
    je ne milite pas pour ocilib, tu pourrais tres bien aussi utiliser un autre wrapper, c'est pareil...

    Le truc, c'est que coder en OCI, quand on le connait pas, c'est tout sauf productif. L'admin réseau peut dire se qu'il veut.

    ton appli, codée en ocilib ou autre wrapper, aurait pu te prendre 1 heure à coder, au regard de ce que m'en en dit. (avec ocilib moins d'1/4 heure, la preuve, j'ai codé ton bout d'appli en 3 minutes chrono).

    Avec OCI, tu aura passé au final plusieurs jours dessus et en plus faut voir si le code est propre (au sens oci) sans fuite mémoire...
    donc coté productivité, y a pas photos...et au final, ils perdent du temps et donc de l'argent tout ca parcequ'un admin réseau à la flegme de prendre 3 minutes pour installer un lib (encore une fois, ocilib ou une autre)...

    La morale : perte de temps et d'argent...
    Tu aurais été un expert OCI (il y en a pas des masses dans le monde !), ok... Mais la, je suis désolé, mais encore unen fois, des c*****rds d'admin réseaux ont encore fait chier... Je suis surpris que le chef de projet les aient suivi dans leur raisonnement stupide et de fénéantise ou alors il s'est fait enfumer....
    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

  5. #5
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    effectivement faut que je vois aussi pour les fuites mémoires!

    la en fait pour mon select je n'ai pas besoin de parser les résultats il faut juste que je sache si le select à au moins renvoyé un résultat!

  6. #6
    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
    il faut faire un fetch pour savoir... donc définir des buffer d'output, etc...
    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. Selection des résultats n à m d'une requête
    Par Gaetch dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/06/2009, 14h52
  2. un select un résultat
    Par plaisama dans le forum Oracle
    Réponses: 1
    Dernier message: 01/04/2009, 02h54
  3. Select max : résultat bizarre
    Par sebinator dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 16/07/2008, 17h45
  4. Requete SELECT avec résultat concaténé
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/08/2006, 16h34
  5. Procédure stockée et SELECT multi résultats
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/07/2006, 16h15

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