CONVERTIR UNE CHAINE

Signaler
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009
-
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
COMMENT CONVERTIR UNE CHAINE AVEC SQL
SELECT Mid(LIG.Champ1,153,15) AS [QUANTITE COMMANDEE]
pour dire que c'est un champs numerique ?

programation .....

19 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
tu peux tenter :

SELECT VAL(Mid(LIG.Champ1,153,15)) AS [QUANTITE COMMANDEE]

question a poser sur www.sqlfr.com ^^
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
Salut,

Essaye cela :

Clng(Mid(LIG.Champ1,153,15))

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

j'ai testé la synthaxe SELECT VAL(Mid(LIG.Champ1,153,15)) AS [QUANTITE COMMANDEE]
il me donne un entier mais moi jai besoin dun numerique avec des decimale exp 1.000

programation .....
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
remplacer la virgule par un point avant.
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

tu peut detailler svp.

programation .....
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Par logique je pense que JMF te propose de faire ,

SELECT VAL(Mid(LIG.Champ1,153.15)) AS [QUANTITE COMMANDEE]
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
SELECT VAL(Mid(replace(LIG.Champ1,",","."),153.15)) AS [QUANTITE COMMANDEE]
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

jai essayé SELECT VAL(Mid(LIG.Champ1,153.15)) AS [QUANTITE COMMANDEE]
 et le resultat c'est tourjour un entier = 1

programation .....
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
- ta base est mal faite.

tu stockes la quantité avec TES parametres regionnaux

ex: 1,5 au lieu de 1.5

- Val s'attend a avoir 1.5
CDbl s'attend a avoir 1,5

ton application n'est pas livrable : tu ne pourra l'utiliser que sur un poste avec les même parametres regionnaux...
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
tu devrais, de plus, effectuer ce decoupage des données lors de l'enregistrement dans la base, et stocker indépendamment chaque item dans un champ qui lui serait propre.

si tu ne le peux pas (on ne décide pas toujours de tout), fais simplement :

SELECT CDBL(Mid(LIG.Champ1,153,15)) AS [QUANTITE COMMANDEE]
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

j'ai essayé SELECT VAL(Mid(replace(LIG.Champ1,",","."),153.15)) AS [QUANTITE COMMANDEE]
est c'est touujour le me reslutat 1 et non 1.00000

programation .....
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

j'ai un message "#Erreur" lorsque j'essaye : SELECT CDBL(Mid(LIG.Champ1,153,15)) AS [QUANTITE COMMANDEE]

programation .....
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Relis donc ce qu'a écrit Renfield (que je salue) ...
Je partage totalement son avis.
Revois ta stratégie d'inscription dans la base de données.

Plusieurs sont possibles. J'ai personnellement choisi l'inscrire les nombre en format String et sans les décimales (en inscrivant par exemple 100 * ma valeur dans la base au moment de l'inscription) et en divisant par ce qui convient (ici 100) au moment de l'extraction. Ce qui est toujours vrai, quels que soient les paramètres régionaux.
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
#ERREUR ?

fonctionne bien chez moi, pourtant....

que contient
Mid(LIG.Champ1,153,15) ??
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

Mid(LIG.Champ1,153,15) contient une chaine alphanumerique de 1110 caractère

programation .....
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

et donc fait une extraction de ma quantité puis il faut que je la convertie en numerique avec des decimales .

programation .....
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
je répète,

que contient
Mid(LIG.Champ1,153,15) ??

ben quoi, donne moi quelques valeurs exemples....
pourtan claire, ma question, non ?


parce que "Mid(LIG.Champ1,153,15) contient une chaine alphanumerique de 1110 caractère " comme énormité, on fait pas mieux...

si tu découpe en prenant 15 caractères, ca peut pas etre une chaine de 1110 caractères.... tu vois ce que je veux dire ??
Messages postés
231
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
10 juin 2009

dslé, le Mid(LIG.Champ1,153,15) contien par exemple 1.00000 ou 5.000000, 15.000000

programation .....
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
Val devrait donc fonctionner :-/

mais tu auras un numérique, pas de décimale nonsignificative...
si tu en veux, faut faire un Format...