|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2006 Messages : 40 ![]() |
SAlut tlm, voila , j'aimerai utiliser un numero qui s'ecrit '0001' au lieu de 1 pour ma clé primé et mon code fournisseur par expl,donc j'ai créé un champ varchar qui contiendra '0000' , j'arrive a l'icrementer en utilisant 'CAST (...as smallint ) mais voila en l'incrementant il me renvoi pas '0002' mais '2' comment si qq a une idée pour pouvoir toujours garder les zero avant SVP, j'utlise Firebird 1.5
MErci d'avance |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 25 ![]() |
Bonjour,
Oracle propose ce type de fonction appelée TO_CHAR UDF4ORA propose les fonctions d'Oracle pour firebird et Interbase sous la forme: TO_CHARN select to_charn(cast(L as integer)+1,'FM0000') from ... Retournera le résultat attendu. Slts PAscal |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : septembre 2002 Messages : 49 ![]() |
a ta place je poserais un generateur et une procedre stockée dans firebird.
pour ton nouvel index la procedure appel le generateur et te retourne ton resultat: 1) tu recupere la valeur du generateur (qui est incrementée de 1) et tu la passe en char manouvellevaleur :=cast [gen_id(mongenerateur,1)] as char ; 2) tu concatene avec 000, et tu ne gardes que les 4 chiffres en partant de la droite: mon resultat := fonction droite( ('000'||manouvellevaleur),4) ca marche donc jusqu'au generateur n°999 . |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 25 ![]() |
Avec ou sans générateur
la fonction LPAD(entrée, longueur , character ajouté) fournie en standart dans FB permet de retourner un char de longueur prédéfinie en ajoutant autant de charactéres que nécessaie à gauche select lpad(1,4,'0') from ... retourne '0001' Slts PAscal |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com