IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

currency problem sur sql update


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Par défaut currency problem sur sql update
    bonjour tous le monde
    j'ai un soucis avec la type currency, dans la requête update, il me demande de convertir le type currency, malgré que le type que j'ai configuré sur ma base de donnée est numérique(access), voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datamodule1.nv_vente.SQL.Add('update vente_c set (qtt=:qttv,s_tt='+floattostr(st)+') where code_b='+datamodule1.produit_v.FieldValues['code_barre']+' and n_vente='+edit4.Text+'')
    s'il vous plait, à l'aide

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    essai un truc de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StQuery := 'update vente_c  '
                    +'  set qtt=:qttv , s_tt = %f '
                   +' where code_b= ''%s'' and n_vente= ''%s'' ';
     
    datamodule1.nv_vente.SQL.Add(
    Format(StQuery[floattostr(st),datamodule1.produit_v.FieldValues['code_barre'].asString,edit4.Text]))
    avec s_tt de type float ou alors il faut l'encadrer de double cote
    après mélanger les paramètres avec du texte, des fois cela ne rend pas les choses plus simple

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    :qttv est un paramètre
    Pourquoi ne pas généraliser le ParamByName pour l'ensemble des valeurs ?

    Le currency est un faux nombre à virgule, c'est en fait un entier / 10000
    Il faut être sûr que le couple provider \ driver supporte cela
    Un Double (AsFloat) est préférable.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Bonjour et bienvenue,

    pour une premier post, je vais peutêtre paraitre un peu "vache"
    Deux choses :
    Tout d'abord il vaut mieux utiliser des requêtes paramétrées
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    update vente_c set qtt=:qttv , s_tt =:tt where code_b=:c and n_vente=:nv
    ce qui évitera des problèmes de conversions de type de données et d'injection SQL
    je suis sidéré que vous ayez utilisé un paramètre pour qtt et pas pour les autres à moins que, carrément vous vous soyez fourvoyé

    ensuite et c'est ce qui vaudrait un vous oublier que le SQL utilise un format précis pour des valeurs comme les dates et les nombres, dans le cas des nombres le point décimal et non la virgule.
    Si malgré ce que j'ai écrit en premier, vous voulez utiliser des formats ou des floattostr n'oubliez pas d'indiquer le bon format TFormatSettings.EN_US

    Enfin, conseil à tout nouveau venu, indiquez votre version de Delphi dans chaque nouvelle discussion et, dans ce fil précis, les composants de données utilisés . datamodule1.nv_vente nous indique que vous utilisez un datamodule mais nv_vente ne nous indique pas de quel type de Query il s'agit (TQuery, TFDQuery, TAdoQuery ?)

    S'il s'agit de FDQuery vous pouvez envisager une syntaxe beaucoup plus courte pour cet Update

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FDConnexion.ExecSQL('update vente_c set qtt=:qttv , s_tt =:tt where code_b=:c and n_vente=:nv',[qttv,St,datamodule1.produit_v.FieldByName().asinteger,edit4.text]);

Discussions similaires

  1. Probleme sur un Update avec ODP.NET
    Par IsaacB dans le forum Accès aux données
    Réponses: 2
    Dernier message: 19/03/2009, 11h26
  2. [HQL] probleme sur requete Update
    Par __Ez__ dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/04/2008, 11h12
  3. MS Serveur 2005, probleme sur un update
    Par lazins dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/03/2008, 19h17
  4. Probleme sur le update
    Par JoloKossovar dans le forum Hibernate
    Réponses: 3
    Dernier message: 02/02/2008, 13h27
  5. [ASP.net][GridView] Probleme sur un update
    Par jeromechezgdf dans le forum ASP.NET
    Réponses: 6
    Dernier message: 31/05/2007, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo