OVH Cloud OVH Cloud

pb sur espace dans un champ

3 réponses
Avatar
dadou pipo
Bonjour

J'ai un pb délicat.
J'ai un champ sous la forme 01-12-99 en caractere pour gerer une date.
quand la date est absente, les chiffres sont remplacés par des espaces " ".

mais voila : le systéme (même manuellement) efface (enleve) les 2 derniers
espaces, ce qui fait qu'au lieu d'avoir " - - " j'ai dans le champ
- -" et bien sur une procedure de test qui cherche les derniers espaces
ne fonctionne pas correctement !!

merci de votre aide.

3 réponses

Avatar
Daniel Carollo
Bonjour Dadou!

Vous aurez toujours ce meme comportement avec un champ de type chaine de
caracteres. Il va falloir modifier la procedure de test...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"dadou pipo" wrote in message
news:
Bonjour

J'ai un pb délicat.
J'ai un champ sous la forme 01-12-99 en caractere pour gerer une date.
quand la date est absente, les chiffres sont remplacés par des espaces "
".


mais voila : le systéme (même manuellement) efface (enleve) les 2
derniers

espaces, ce qui fait qu'au lieu d'avoir " - - " j'ai dans le champ
- -" et bien sur une procedure de test qui cherche les derniers espaces
ne fonctionne pas correctement !!

merci de votre aide.




Avatar
dadou pipo
Merci de votre réponse, mais pourquoi ?

a+
"Daniel Carollo" a écrit dans le
message de news:
Bonjour Dadou!

Vous aurez toujours ce meme comportement avec un champ de type chaine de
caracteres. Il va falloir modifier la procedure de test...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"dadou pipo" wrote in message
news:
Bonjour

J'ai un pb délicat.
J'ai un champ sous la forme 01-12-99 en caractere pour gerer une date.
quand la date est absente, les chiffres sont remplacés par des espaces "
".


mais voila : le systéme (même manuellement) efface (enleve) les 2
derniers

espaces, ce qui fait qu'au lieu d'avoir " - - " j'ai dans le champ
- -" et bien sur une procedure de test qui cherche les derniers
espaces


ne fonctionne pas correctement !!

merci de votre aide.








Avatar
dadou pipo
Merci beaucoup de ces explication, je vais modifier ma procédure en
consequence

a+
"Daniel Carollo" a écrit dans le
message de news:
Bonjour Dadou!

Dans les bases de donnees, il y a en general deux types de chaines de
caracteres qui peuvent etre definis: une chaine de longueur fixe, et un
chaine de longueur variable. La chaine de longueur fixe est un poil plus
rapide a traiter: il suffit de lire/ecrire un certain nombre de
caracteres.

Par contre, on gaspille peut-etre de la place, certaines chaine etant
"plus

courtes" que l'espace qui leur est reserve. A l'oppose, la chaine de
longuer

variable ne requiert que le nombre de caracteres utiles, augmente d'un
chiffre qui donne le nombre de caracteres de cette chaine. Cela demande
quelques cycles de calculs en plus, mais maintenant, avec la vitesse de
processeurs, c'est beaucoup moins critique.

Avec des bases destinees a l'utilisation plus professionnelle qu'Access
(SQL

Server ou Oracle, par exemple), il est possible de definir le type de
chaine

de caracteres pour avoir ce que l'on desire: une colonne de type char ou
nchar de longueur 10 va toujours renvoyer une chaine de characteres de
longueur 10, les espace inutilises etant remplaces par.... des espaces:
quand on enregistre "coucou ", on relit "coucou ". Il est de bon ton de
faire un Trim() pour enlever ces espaces, suivant l'application. Par
contre

avec un champ de type varchar, on relit "coucou ", ce qui est plus commode
dans certains cas.

Toujours est-il que Jet (le moteur d'Access) traite les chaines de
caracteres comme une suite de caracteres qui se termine par un
caractere_n'etant_pas_un_espace. Les chaines voient donc tous les espaces
sur la droite supprimes. Je pense (et c'est la une opinion toute
personnelle) que les developpeurs de Microsoft ont voulu rendre la tache
plus facile aux developpeurs amateurs d'Access. En effet, si on laisse les
espaces a droite des chaines de caracteres, on a tres souvent des
utilisateurs qui se plaignent, sur un ton geignard, que "ma machine elle
arrive pas a retrouver toutes mes donnees", alors qu'en regardant de plus
pres, on a enregistre "Paris", " Paris", " Paris", " Paris ", "paris",
"PARI

S", "Paris ", "Paris ", "Paris ", "Parsi", "Paras" et j'en passe.

En conclusion, il n'est pas possible de modifier le comportement d'Access
au

regard des chaines de caracteres, il faut donc modifier votre procedure...
ou changer de base de donnees ;-)


--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...


"dadou pipo" wrote in message
news:#
Merci de votre réponse, mais pourquoi ?

a+
"Daniel Carollo" a écrit
dans


le
message de news:
Bonjour Dadou!

Vous aurez toujours ce meme comportement avec un champ de type chaine
de



caracteres. Il va falloir modifier la procedure de test...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...