Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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/06/2008, 10h48   #1
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 634
Points : 4 537
Points : 4 537
Par défaut Concatenation et Espaces

Soit deux Champs MODELE CHAR(15) et COULEUR CHAR(3) que je veux concatener pour obtenir ARTICLE . MODELE||'-'||COULEUR

exemples
Code :
1
2
3
4
5
Modele       |Couleur    |la concatenation || me donne    |alors que je voudrais 
MAESTRO      |001        |MAESTRO      -001               |MAESTRO-001
MINOU        |001        |MINOU        -001               |MINOU-001     
MINOU        |002        |MINOU        -002               |MINOU-002
JASS         |025        |JASS         -025               |JASS-025
Y-a t'il un autre opérateur de concaténation qui me permet d'oter les espaces ?
je doit avouer que j'ai un trou , bien sur je peux passer par RTrim mais quand même ce n'est pas prévu ? j'etais persuadé qu'il existait quelque chose du genre &&

[edit] lol en regardant mon message les espaces disparaissent entre mes colonnes, j'ai donc rajouté une virgule

[Edit Barbibule] il faut utiliser la balise [#] (code) qui conserve les espaces.
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 11h11   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Bonjour,

C'est parce-que vous utilisez CHAR. En effet CHAR est une chaine à taille fixe et donc il complète la chaine avec des espaces en fin.

Contrairement à varchar qui restitue la chaine tel qu'elle a été saisie. C'est a dire sans ajouter des espaces en fin (mais cela ne veux pas dire qu'il n'y en a pas car vous pouvez très bien avoir enregistré volontairement des espaces en fin).

Donc pour enlever ces espace il vous faudra utiliser Rtrim (dans une UDF). Ou utiliser des varchars.

Cordialement
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 11h46   #3
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 634
Points : 4 537
Points : 4 537
grand merci . @Barbibulle pour les balises
j'etais persuadé qu'un opérateur de concatenation && existait mais c'etait avec RAVE
Bien sur je me suis résigné a utiliser F_RTRIM ce qui donne , pour ceux qui voudrait le savoir

Code :
1
2
 
CAST(F_RTRIM(MODELE)||'-'||COULEUR AS CHAR(20))
je me suis apperçu que le CAST avait de l'importance dans mon cas car par la suite j'utilise le résultat pour un ORDER BY
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 14h03   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
pourquoi utiliser une UDF quand on a une fonction interne disponible?


Code :
1
2
3
4
TRIM <LEFT paren> [ [ <trim specification> ] [ <trim character> ]
FROM ] <value expression> <RIGHT paren>
<trim specification> ::= LEADING | TRAILING | BOTH
<trim character> ::= <value expression>
donc :
Code :
CAST(TRIM(MODELE)||'-'||COULEUR AS CHAR(20))
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 15h33   #5
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Citation:
Envoyé par makowski Voir le message
pourquoi utiliser une UDF quand on a une fonction interne disponible?
Parce que peut être qu'il utilise fb1.5.

Sinon sous fb > 2.0 merci makowski
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 16h06   #6
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
2004 février : Firebird 1.5
2006 novembre : Firebird 2.0
2008 avril : Firebird 2.1

autant je peux comprendre que Firebird 2.1 ne soit pas encore très utilisé, mais franchement utiliser encore Firebird 1.5 ... il faut vraiment en vouloir
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 16h53   #7
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 634
Points : 4 537
Points : 4 537
Pas du tout, c'est parce que comme un ... tout n'est pas encore entré dans ma petite tête et que j'ai essayé RTRIM,LRTRIM et complètement raté TRIM

au temps pour moi
à ma décharge faut quand même chercher un bout de temps avant de trouver et là j'étais un peu pressé
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h32   #8
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Citation:
Envoyé par makowski Voir le message
2004 février : Firebird 1.5
2006 novembre : Firebird 2.0
2008 avril : Firebird 2.1

autant je peux comprendre que Firebird 2.1 ne soit pas encore très utilisé, mais franchement utiliser encore Firebird 1.5 ... il faut vraiment en vouloir
Si tu veux faire migrer tous mes clients gratuitement je suis partant

Et hélas il y a la théorie et la pratique... En théorie ça serait bien de passer et d'utiliser fb2.1. En pratique, je n'ai pas le temps, les clients n'en voient pas l'utilité étant donné que ça fonctionne très bien (et donc ne voudront pas payer le temps que je vais passer à le faire).
Aux prochaines grosses évolutions j'essayerai probablement d'y passer mais en attendant fb1.5 tourne et tournera encore chez pas mal de clients.

Et je peux aussi donner des dates : 12 décembre 2007 (donc il y a tout juste 6 mois) fb1.5.5 sortait. Ce n'est donc pas si vieux que ça
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 23h57   #9
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
un backup, desinstallation, installation, restore ça s'automatise très bien
quand à fb1.5.x il y a de forte chances qu'il n'existera jamais de fb1.5.6
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 00h02   #10
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
Citation:
Envoyé par SergioMaster Voir le message
à ma décharge faut quand même chercher un bout de temps avant de trouver et là j'étais un peu pressé
hum

note de version 1.5 :
Citation:
The following keywords are reserved for future planned use:

ABS BOOLEAN BOTH
CHAR_LENGTH CHARACTER_LENGTH FALSE
LEADING OCTET_LENGTH TRIM
TRAILING TRUE UNKNOWN
notes de version 2.0 :
Citation:
New String Functions

LOWER()
TRIM()
New String Size Functions
notes de version 2.1
Citation:
Several of these built-in functions were already available in Firebird 2/ODS 11, viz., LOWER(), TRIM(), BIT_LENGTH(), CHAR_LENGTH() and OCTET_LENGTH().
et je ne parle pas d'une recherche google sur "TRIM firebird"

....
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h14   #11
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Citation:
Envoyé par makowski Voir le message
un backup, desinstallation, installation, restore ça s'automatise très bien
quand à fb1.5.x il y a de forte chances qu'il n'existera jamais de fb1.5.6
Je ne dis pas que l'avenir c'est fb1.5.x, je dis qu'il n'est pas absurde de trouver encore des applis qui tournent sous fb1.5.x. (et ce encore pour un bout de temps)

Dans mon cas, j'ai évidemment déjà essayé de basculer et justement le restore ne se passe pas bien, j'ai hélas quelques PS qui ne passent pas (pas grand chose).

Donc primo il faut que je commence par corriger ce point dans mes bases fb1.5.

Et 2eme soucis c'est l'application cliente qui est assez vielle avec des IBX.

Donc à moins d'avoir confirmation qu'on peut sans problème utiliser les IBX avec fb2.1 (même si ce n'est pas préconisé car c'est dépréciate), je ne prendrais pas le risque de planter mes clients.

Surtout que fb2.x ne leur apportera rien d'essentiel.

Bien entendu pour les nouveaux développements il serait absurde de choisir fb1.5.
Barbibulle 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 18h10.


 
 
 
 
Partenaires

Hébergement Web