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 :

[ProC][SQL] Utiliser une variable comme nom de curseur


Sujet :

Interfaces de programmation Oracle

  1. #1
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut [ProC][SQL] Utiliser une variable comme nom de curseur
    Salut,



    Je développe une application C/ProSQL Informix et j'utilise des curseurs pour effectuer des requêtes, ce qui donne grosso-modo :

    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
    EXEC SQL begin declare section;
    char            *req;
    struct sqlda    *da;
    EXEC SQL  end  declare section;
     
    /* Preparation de la requete */
    EXEC SQL prepare prep_tableau from :req;
     
    /* Récupération des informations */
    EXEC SQL describe prep_tableau into da;
     
    /* ... */
     
    /* Declaration du curseur */
    EXEC SQL declare curs_tableau scroll cursor for prep_tableau;
     
    /* Ouverture du curseur */
    EXEC SQL open curs_tableau;
     
    /* ... */
    (je vous passe la gestion des erreurs et le parcours du curseur).


    Ce curseur sert à afficher les données sous forme de tableau et reste donc ouvert tant que le programme tourne.

    Le problème, c'est que je voudrais utiliser ce code pour afficher plusieurs tableaux à la fois, mais étant donnée que le nom du curseur curs_tableau est en dur dans le code, je suis obligé de fermer la première requête (et donc effacer le tableau précédent).




    Il semble qu'il soit possible d'utiliser une variable comme nom de curseur, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    EXEC SQL prepare :ma_var_prep from :req;
    
    EXEC SQL declare :ma_var_cursor scroll cursor for prep_tableau;
    Mais j'ai trouvé très peu de documentation là dessus, et surtout j'ignore totalement le type que je dois utiliser pour :ma_var_prep et :ma_var_cursor.



    Est-ce que quelqu'un a déjà fait ca, ou pourrait me guider vers une doc clair à ce sujet (tout ce que je trouve concerne le code que j'utilise actuellement).




    a++


    PS: Je précise que j'ai déjà pris en compte la possibilité de recopier la totalité du curseur en mémoire afin de le fermer au plus tôt, mais cette solution ne m'intéresse pas.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Je viens de trouver !!! En fait c'est tout con j'ai simplement jeter un coup d'oeil au code C généré par le pré-compilateur SQL
    (je n'y avait pas pensé plus tôt car notre script supprime automatiquement ce fichier).


    En fait les identifiants de curseur ne sont ni plus ni moins que des chaines de caractères, c'est à dire des char* !


    a++

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

Discussions similaires

  1. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  2. Réponses: 2
    Dernier message: 12/04/2011, 09h21
  3. utiliser une variable comme nom d'objet! est-ce possible?
    Par Rusty2096 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/06/2009, 15h33
  4. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  5. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12

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