Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/04/2006, 16h42   #1
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
Par défaut cast en varchar

Bonjour,

j'ai une application cliente serveur avec l'interface développée en C++ via C++ Builder et comme SGBDR PostGreSQL of course.
Sur mon interface, j'ai des composants DBGrid qui me permettent d'afficher des tables ou des requetes. Le problème c'est que ce composant n'affiche pas les champs de type memo (text). Donc je les caste en varchar dans ma requete et normalement mes champs s'affichent mais pas dans ma dernière requete. je vous donne cette dernière :

Code :
1
2
3
SELECT CAST(RPAD('0685',11,' ') AS VARCHAR(15)) AS enreg,
 CAST(RPAD('411202',11,' ') AS VARCHAR(15)) AS emetteur, 
CAST(RPAD(to_char(current_date,'DDMMYY') || s_name || ' ' || s_firstname,29,' ') AS VARCHAR(30)) AS identification ...
mon champ identification s'affiche correctement alors que les champs enreg et emetteur ne s'affichent pas dans mon DBGrid ???

Si je lance cette requete via pgAdmin, tout s'affiche et la légende me spécifie que ce sont bien des varchar.

Sur ce problème, je n'ai aucune idée donc si quelqu'un a déjà rencontré le problème, je suis toute ouie

merci d'avance
__________________
L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
Pierre Desproges
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 18h51   #2
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
j'ai trouvé la solution à mon problème même si je trouve ça bizarre. Je vous la donne au cas où quelqu'un aurait le même souci que moi. Mais si quelqu'un peut m'expliquer la logique ça m'intéresse. Donc voici la solution :

Code :
1
2
3
4
5
6
SELECT CAST(enreg AS VARCHAR(15)) AS enreg, 
CAST(emetteur AS VARCHAR(15) AS emetteur, 
CAST(identification AS VARCHAR(30)) AS identification 
FROM(SELECT RPAD('0685',11,' ') AS enreg,
  RPAD('411202',11,' ') AS emetteur, 
RPAD(to_char(current_date,'DDMMYY') || s_name || ' ' || s_firstname,29,' ') AS identification ...) AS req_prlvt
voili, voilou
__________________
L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
Pierre Desproges
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h35.


 
 
 
 
Partenaires

Hébergement Web