Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
918 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  PRO*C : effacer le contenu d'un varchar

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PRO*C : effacer le contenu d'un varchar

n°924214
Befa21
Pouet
Posté le 15-12-2004 à 17:26:44  profilanswer
 

Code :
  1. void Consulter_Manifestations(){
  2.   int encore=1;
  3.  
  4.   system("clear" );
  5.   printf("%*s",55,"---Liste des Manifestations---\n\n" );
  6.   printf("%*s %*s %*s\n\n",8,"Numro",52,"Intitule",12,"Date" );
  7.  
  8.   EXEC SQL DECLARE curseur_les_manifs CURSOR FOR
  9.     SELECT *
  10.     FROM Manifestation;
  11.   EXEC SQL open curseur_les_manifs;
  12.  
  13.   while (encore) {
  14.     EXEC SQL fetch curseur_les_manifs into :NumManif,:IntituleManif,:DateManif;
  15.     encore=!sqlca.sqlcode;
  16.     if(encore){
  17.       IntituleManif.len=strlen(IntituleManif.arr);
  18.       DateManif.len=strlen(DateManif.arr);
  19.       IntituleManif.arr[IntituleManif.len]='\0';
  20.       DateManif.arr[DateManif.len]='\0';
  21.       printf("%*d %*s %*s\n",8,NumManif,52,IntituleManif.arr,12,DateManif.arr);
  22.     }
  23.   }
  24.   EXEC SQL close curseur_les_manifs;
  25.   scanf("%d",&encore);
  26. }


 
j'ai ce code la dans un projet que j'ai à faire
Le probleme c'est que dans ma procédure d'affichage, entre 2 lignes de la table les varchar sont pas effacés et j'ai des caracteres en trop.
 
exemple : si la ligne 1 donne
1     TotoTata    16/12/04
et si la ligne 2 doit donner normalement
2         Titi    10/05/03
ca m'affiche
2     TitiTata    10/05/03
 
Je vois pas comment faire :/


---------------
GT : Befa21
mood
Publicité
Posté le 15-12-2004 à 17:26:44  profilanswer
 

n°925077
Befa21
Pouet
Posté le 16-12-2004 à 15:13:16  profilanswer
 

up


---------------
GT : Befa21
n°925753
Befa21
Pouet
Posté le 17-12-2004 à 10:25:19  profilanswer
 

up


---------------
GT : Befa21
n°927573
Befa21
Pouet
Posté le 19-12-2004 à 19:41:12  profilanswer
 

ça passionne les foules :lol:


---------------
GT : Befa21
n°927605
Terminapor
I'll see you rise.
Posté le 19-12-2004 à 20:52:54  profilanswer
 

attend ya le people qui s'amene la :sol:

n°927626
pains-aux-​raisins
Fatal error
Posté le 19-12-2004 à 21:48:01  profilanswer
 

C'est ton printf qui va pas bien. Tu lui demande d'imprimer les 52 premiers caractères de la variable IntituleManif.arr. Le zéro binaire ajouté en fin de chaîne n'y changera rien.
 
edit :
Ce que tu peux faire c'est faire un memset(IntituleManif.arr, '\0', LGMAX) juste après le printf.
Tu peux également en profiter pour virer les 4 lignes de code inutiles au dessus du printf...
 
edit II :
Arrange la boucle while stp. C'est vraiment moche.

Code :
  1. memset(IntituleManif.arr, '\0', LGMAX);
  2. EXEC SQL fetch curseur_les_manifs into
  3.    :NumManif, :IntituleManif, :DateManif;
  4. encore=!sqlca.sqlcode;
  5. while (encore) {
  6.    printf("%*d %*s %*s\n",  8, NumManif,
  7.                            52, IntituleManif.arr,
  8.                            12, DateManif.arr);
  9.    memset(IntituleManif.arr, '\0', LGMAX);
  10.    EXEC SQL fetch curseur_les_manifs into
  11.       :NumManif, :IntituleManif, :DateManif;
  12.    encore=!sqlca.sqlcode;
  13. }


C'est la manière usuelle de faire une boucle de ce style.
On peut évidemment factoriser par une petite macro ou fonction inline...
[:pains-aux-raisins]


Message édité par pains-aux-raisins le 19-12-2004 à 22:01:20
n°939177
Befa21
Pouet
Posté le 06-01-2005 à 15:05:14  profilanswer
 

merci  :jap:


---------------
GT : Befa21

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  PRO*C : effacer le contenu d'un varchar

 

Sujets relatifs
effacer un ligne d'une table access en vba[C] Ecrire le contenu d'une matrice dans un fichier
Test du contenu d'une variableCréer un Array à partir du contenu d'une cellule
Effacer les backslash dans MySQLFirefox - étirer un <div> à la taille de son contenu
effacer un textarea portant un nom spécial [resolu][HTML/CSS] chevauchement de calques à contenu dynamique
executer le code contenu dans une variable[C#] WebBrowser & encoding : limite de taille du contenu ?
Plus de sujets relatifs à : PRO*C : effacer le contenu d'un varchar


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR