CONVERTIR UNE CHAINE

h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009 - 29 juin 2007 à 11:34
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 juin 2007 à 15:39
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

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

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

question a poser sur www.sqlfr.com ^^
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
29 juin 2007 à 11:38
Salut,

Essaye cela :

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

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 11:53
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 .....
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
29 juin 2007 à 11:56
remplacer la virgule par un point avant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 11:57
tu peut detailler svp.

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

SELECT VAL(Mid(LIG.Champ1,153.15)) AS [QUANTITE COMMANDEE]
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
29 juin 2007 à 12:06
SELECT VAL(Mid(replace(LIG.Champ1,",","."),153.15)) AS [QUANTITE COMMANDEE]
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 12:07
jai essayé SELECT VAL(Mid(LIG.Champ1,153.15)) AS [QUANTITE COMMANDEE]
 et le resultat c'est tourjour un entier = 1

programation .....
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 12:10
- 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...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 12:12
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]
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 12:13
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 .....
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 12:16
j'ai un message "#Erreur" lorsque j'essaye : SELECT CDBL(Mid(LIG.Champ1,153,15)) AS [QUANTITE COMMANDEE]

programation .....
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
29 juin 2007 à 12:19
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.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 12:25
#ERREUR ?

fonctionne bien chez moi, pourtant....

que contient
Mid(LIG.Champ1,153,15) ??
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 12:50
Mid(LIG.Champ1,153,15) contient une chaine alphanumerique de 1110 caractère

programation .....
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 12:52
et donc fait une extraction de ma quantité puis il faut que je la convertie en numerique avec des decimales .

programation .....
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 13:20
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 ??
0
h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009
29 juin 2007 à 15:29
dslé, le Mid(LIG.Champ1,153,15) contien par exemple 1.00000 ou 5.000000, 15.000000

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

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