Salut tout le monde ,
Je travaille sur une app VB.NET avec une BDD SQL SERVER 2008 R2
Pour résumer la situation j'essaye de convertir des champs de la table Credits qui sont de type varchar en float pour faire une mise à jour des paiements des clients , voici la table : Credits (idcredit , id client , idproduit , montant , avance , reste).
Les champs : montant , avance et reste sont de type varchar et ce que j'essaye de faire est de :
1-Avec la fonction REPLACE de remplacer l'espace qui symbolise le groupement des chiffres : REPLACE(avance,' ','') par exemple 5 200,00 £ devra etre 5200,00 £ puis de remplacer aussi la virgule (comma) par le point décimal seul reconnu par SQL SERVER comme séparateur décimal ( l'erreur s'affiche : Cannot convert varchar datatype to float car dans mes paramètres régionaux la virgule est le séparateur décimal ) et cela pour les deux autres champs : "montant" et "reste"
REPLACE (avance,',','.') donc 5 200,00 £ devra etre 5 200.00£
Donc j'ai essayé de changer mes paramètres régionaux en utilisant le point décimal comme séparateur décimal mais je n'arrive pas à comprendre pourquoi SQL SERVER 2008 R2 me donne toujours cette erreur : Error converting data type varchar to float.
Voici mon code ( J'essaye de calculer le reste en fonction des versements du client )
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ALTER PROC [dbo].[CALC_RESTECREDIT] @id int, @montaj varchar(50) as UPDATE Credits SET Avance = CAST(replace(Avance,' ','') as float) + CAST(replace(@montaj,' ','') as float) ,Reste =CAST(replace(MontVente,' ','') as float) - CAST(replace(Avance,' ','') as float) WHERE ClientID =@id
Partager