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

Bases de données Delphi Discussion :

convertir un type null en string (re)


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut convertir un type null en string (re)
    bonjour

    Suite à la résolution de mon problème ici je rencontre quand même encore ce problème quand je crée des nouveaux enregistrements un message de ce type s'affiche encore.
    "impossible de convertir un variant de type null en double" il n'y aurait pas une façon de le faire une fois pour toutes.
    D'autre part j'ai relu la soluce de Malatar et il me parle de valeur convertie ???
    C.a.d?

    Merci.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    quand je crée des nouveaux enregistrements
    Ils sont créés comment les enregistrements ? par un Insert SQL dans un TQuery, un Add dans un TTable ?
    Avec quelques lignes du code ce serai plus clair

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 45
    Points
    45
    Par défaut
    Tu utilises quoi comme base de données ?

  4. #4
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par amnir
    Tu utilises quoi comme base de données ?
    En effet en fonction de ta base tu peux sans doute faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Select coalesce(mon_champ, 0)
    Si c'est pour un aggrégat sur un clientdataset tu peux aussi ajouter un champ de donnée "MonChamp_Pour_Cumul" à ton clientdataset et sur le beforepost tu fera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      if MonChamp_Valeur.isnull then
         MonChamp_Pour_Cumul.value := 0
      else MonChamp_Pour_Cumul.value := MonChamp_Valeur.value;
    Alors tu fera ton aggregat sur MonChamp_Pour_Cumul

    Tout les coups sont permis !
    a+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    C'est une table paradox
    c'est effectivement pour des aggregats
    et les enregistrement sont crées sur une table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if MonChamp_Valeur.isnull then
         MonChamp_Pour_Cumul.value := 0
      else MonChamp_Pour_Cumul.value := MonChamp_Valeur.value;
    je vais essayer sur le before post de l'aggregat.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    Voila ce que j'avais mis pour mon calcul. et ça marchais donc si j'ai bien compris je met ou remets ce code dans le before post de l'aggregat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if clientdataset1totalretpat.IsNull then
    begin
    table3retenuepat.DisplayFormat:='0.00';
    end
    else
    table3retenuepat.Value:=clientdataset1totalretpat.Value*3;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    Toujours le même message d'erreur. Ou j'ai mal compris ou c'est pas la bonne solution

  8. #8
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par pierrot67
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if clientdataset1totalretpat.IsNull then
    begin
    table3retenuepat.DisplayFormat:='0.00';
    end
    else
    table3retenuepat.Value:=clientdataset1totalretpat.Value*3;
    Il s'agit d'une erreur de frappe ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if clientdataset1totalretpat.IsNull then
    begin
      table3retenuepat.DisplayFormat:='0.00';
      table3retenuepat.Value := 0; 
    end
    else
    table3retenuepat.Value:=clientdataset1totalretpat.Value*3;
    Alors je ne me souvient plus quand ton champ aggregat refait son calcul donc si le beforepost du dataset ne donne pas de bon résultat fait le sur le OnValidate du champ clientdataset1totalretpat

    a+

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    Votre solution est bonne mais je viens de m'apperçevoir quand gèrant l'erreur avec un try except c'est plus simple en tous cas ça marche mais si vous me l'avez pas proposé il y à peut-être une raison qu j'ignore.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2014, 10h04
  2. convertir un type (int ou string) en n bytes
    Par Rayann dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 18/12/2009, 10h19
  3. Réponses: 10
    Dernier message: 04/05/2006, 23h55
  4. Erreur de conversion de type Null en String
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/07/2005, 15h25
  5. [LG]Convertir le type double en string
    Par @tom@ dans le forum Langage
    Réponses: 8
    Dernier message: 18/01/2004, 19h20

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