Amis programmeurs
Bonjour,
Actuellement étudiant en DUT Informatique, je suis actuellement confronté à un problème qui concerne Oracle et plus spécifiquement au PRO-C (j'espère que je suis bien dans la bonne section
),
Le but de ma fonction est de permettre à l'utilisateur à travers une interface console de faire une recherche sur une table (avec entre autres, un titre). Voici le code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| void recherche_titre()
{
EXEC SQL begin DECLARE section;
char sql_tableau[100];
char sql_resul[250];
EXEC SQL end DECLARE section;
printf("Entrez le titre du sujet\n");
fgets(sql_tableau, 100, stdin);
EXEC SQL DECLARE requete CURSOR FOR SELECT TITRE FROM SUJET WHERE TITRE LIKE :sql_tableau;
EXEC SQL OPEN requete;
EXEC SQL FETCH requete INTO :sql_resul;
while((sqlca.sqlcode >= 0) && (sqlca.sqlcode != 1403))
{
printf("%s\n", sql_resul);
EXEC SQL FETCH requete INTO :sql_resul;
}
EXEC SQL CLOSE requete;
} |
Mon problème est le suivant lorsque l'utilisateur rentre le titre du sujet qu'il souhaite consulter il est stocké dans un tableau de char qui ici s'appelle sql_tableau (merci le C pour la gestion des string :S), la requête renvoie un ensemble de résultats et c'est pour cela si j'ai bien compris que je dois utiliser un curseur pour les stocker. L'ensemble de ses résultat est stocké dans un tableau sql_resul.
Lorsque que j'exécute mon programme rien ne s'affiche en résultat mais quand je remplace le EXEC SQL DECLARE requete CURSOR FOR par :
EXEC SQL DECLARE requete CURSOR FOR SELECT TITRE FROM SUJET WHERE TITRE LIKE 'Les aventures du Dupont';
j'ai plusieurs résultats qui s'affichent à l'écran.
Peut-être un problème de syntaxe?!
Merci d'avance et bonne journée.
Cordialement
_Virtuose_
Partager