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 :

Conversion de type variant incorrecte


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Par défaut Conversion de type variant incorrecte
    Salut,
    J'ai un problème de calcul. Je prends les données de deux tables différentes et je fais le calcul comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBEdit21.Text := inttostr(  (strtoint(Form1.Table3['INDDejeuner']) * StrToInt(Form1.Table1['NbrDejeuner']))+ (strtoint(Form1.Table3['INDDinner'])* strtoint(Form1.Table1['NbrDinner'])) + (strtoint(Form1.Table3['INDDecoucher']) * strtoint(Form1.Table1['NbrDecoucher']))  );
    Table3['INDDejeuner'] de Type N (N: Numérique)
    Table1['NbrDejeuner'] de Type N
    Table3['INDDinner'] de Type N
    Table1['NbrDinner'] de Type N
    Table3['INDDecoucher'] de Type N
    Table1['NbrDecoucher'] de Type N

    Message d'erreur: Conversion de type variant incorrecte

    J'ai revu plusieurs fois le code mais je ne vois pas ou est le probleme. Aidez moi à trouver l'erreur; peut être quelle est évidente pour vous!

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 635
    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 635
    Billets dans le blog
    65
    Par défaut
    si tes valeurs sont bien numériques et non nulles je ne vois pas pourquoi tu utilises strtoint
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strtoint(Form1.Table3['INDDejeuner'])
    ceci serait déjà plus juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBEdit21.Text := inttostr(  (Form1.Table3['INDDejeuner'] *Form1.Table1['NbrDejeuner'])+ (Form1.Table3['INDDinner']*Form1.Table1['NbrDinner']) + (Form1.Table3['INDDecoucher'] * Form1.Table1['NbrDecoucher'])  );
    reste ensuite les problèmes des nulls au cas où , c'est pour cela que je préfère toujours indiquer le type de données

    i.e. Form1.Table1['NbrDinner'].asInteger , Table['Prix'].asCurrency etc ..
    en fait (je suis vieux jeu ) je préfére encore plus sous la forme Table.fieldByName('champ').as<Type>

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Par défaut
    Merci SergioMaster pour la solution

    en fait (je suis vieux jeu ) je préfére encore plus sous la forme Table.fieldByName('champ').as<Type>
    ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2007, 17h07
  2. locate - type variant incorrect
    Par lol_adele dans le forum Bases de données
    Réponses: 8
    Dernier message: 24/10/2005, 15h54
  3. [MYSQL] conversion de type sur import de script
    Par sebos63 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/08/2003, 10h00
  4. Convertion de type VARIANT à type CString
    Par j_grue dans le forum MFC
    Réponses: 2
    Dernier message: 07/11/2002, 14h18
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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