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 :

Erreur lors de l'extraction de données dans une base Mysql5


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 229
    Points : 60
    Points
    60
    Par défaut Erreur lors de l'extraction de données dans une base Mysql5
    Bonjour monsieurs, je reçois une erreur lorsque j'essaie d'extraire la valeur de certains champs.
    J'utilise un composant query pour selectionner des données qui existent bien dans ma base Mysql5.
    J'ai l'exception suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query1:field 'Valeur' not found
    Alors ce champs existe bien et contient des données .
    Vraiment je ne comprend pas la source de cette erreur.
    Aidez moi s'il vous plaît.
    Voici code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
         while not DM.ZQuery1.Eof do
          begin
              ObData:=TDonnees.GetDonnee(DM.ZQuery1.FieldByName('IdDonnes').AsInteger);
              VCol:=TComptabiliser.GetLine(VListDepart[i],VListompta_Manager);
              VLigne:=TComptabiliser.GetCol(ObData,VListompta_Manager);                         
             //VLigne:=strtoint(ObData.Code);
              VListompta_Manager[VCol,VLigne].Id:=DM.ZQuery1.FieldByName('Id').AsInteger;            
              VListompta_Manager[VCol,VLigne].Valeur:=DM.ZQuery1.FieldByName('Valeur').AsFloat;
              VListompta_Manager[VCol,VLigne].Date_Operation:=DM.ZQuery1.FieldByName('DateOperation').AsDateTime;
              VListompta_Manager[VCol,VLigne].IdDepart:=DM.ZQuery1.FieldByName('IDDepart').AsInteger;
              VListompta_Manager[VCol,VLigne].IdDonnes:=DM.ZQuery1.FieldByName('IdDonnes').AsInteger;
              VListompta_Manager[VCol,VLigne].Exist:=true;                        
              DM.ZQuery1.Next;
          end;

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut


    peut être as-tu juste oublié de préciser le champ en question dans ta requête SQL ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 229
    Points : 60
    Points
    60
    Par défaut
    Non je précise bien tous les champs dans ma requête.
    Ma requête se présente comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     Vsql:='select Id,Valeur,DateOperation,IDDepart,IdDonnes from comptabilite where IDDepart=:VIdDepart '+
      ' and DateOperation=:VDateF ';
     
         DM.ZQuery1.Close;
         DM.ZQuery1.SQL.Clear;
         DM.ZQuery1.SQL.Text:= Vsql;
         DM.ZQuery1.ParamByName('VDateF').Value:=PDateF;
         DM.ZQuery1.ParamByName('VIdDepart').Value:=VListDepart[0].Id;         DM.ZQuery1.Open;
    Je besoin de comprendre cette erreur.
    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Vsql:='select Id,Valeur,DateOperation,IDDepart,IdDonnes from comptabilite where IDDepart=:VIdDepart '+
      ' and DateOperation=:VDateF ';
     
        
         DM.ZQuery1.Active := False;
         DM.ZQuery1.SQL.Clear;
         DM.ZQuery1.SQL.Text:= Vsql;
    
         DM.ZQuery1.ParamByName('VDateF').Value:=PDateF;
         DM.ZQuery1.ParamByName('VIdDepart').Value:=VListDepart[0].Id;         DM.ZQuery1.Open;
        DM.ZQuery1.Active := True;
    
       while not DM.ZQuery1.Eof do
          begin
              ObData:=TDonnees.GetDonnee(DM.ZQuery1.FieldByName('IdDonnes').AsInteger);
              VCol:=TComptabiliser.GetLine(VListDepart[i],VListompta_Manager);
              VLigne:=TComptabiliser.GetCol(ObData,VListompta_Manager);                         
             //VLigne:=strtoint(ObData.Code);
              VListompta_Manager[VCol,VLigne].Id:=DM.ZQuery1.FieldByName('Id').AsInteger;            
              VListompta_Manager[VCol,VLigne].Valeur:=DM.ZQuery1.FieldByName('Valeur').AsFloat;
              VListompta_Manager[VCol,VLigne].Date_Operation:=DM.ZQuery1.FieldByName('DateOperation').AsDateTime;
              VListompta_Manager[VCol,VLigne].IdDepart:=DM.ZQuery1.FieldByName('IDDepart').AsInteger;
              VListompta_Manager[VCol,VLigne].IdDonnes:=DM.ZQuery1.FieldByName('IdDonnes').AsInteger;
              VListompta_Manager[VCol,VLigne].Exist:=true;                        
              DM.ZQuery1.Next;
          end;
    Sinon j'ai déjà eu quelques souci avec FieldByName, j'ai essayé avec FindField et ça a résolu mon problème

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par popo Voir le message
    Sinon j'ai déjà eu quelques souci avec FieldByName, j'ai essayé avec FindField et ça a résolu mon problème
    Dans la mesure où FieldByName de TDataSet appelle FindField, je ne vois pas trop la différence.

    @Klemsy
    Les 2 requêtes que tu présentes sont différentes ! Laquelle des deux ne fonctionne pas ?

    @+ Claudius

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 229
    Points : 60
    Points
    60
    Par défaut
    C'est la dernière requête qui pose problème.
    C'est dans la boucle que l'erreur est soulevé quand je lis un champs avec FieldbyName.

    Merci!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Je te propose de faire un showmessage de ta requête juste avant de l'exécuter et tu nous retournes le contenu de ta requête.

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par teach Voir le message
    Je te propose de faire un showmessage de ta requête juste avant de l'exécuter et tu nous retournes le contenu de ta requête.
    Sauf qu'avec l'utilisation des paramètres cela ne sert à rien car il affichera la requête de base avec les :param
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    C'est la syntaxe de la requête qui nous interesse pour essayer de comprendre le pourquoi du rejet de la colonne Valeur.

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par teach Voir le message
    C'est la syntaxe de la requête qui nous interesse pour essayer de comprendre le pourquoi du rejet de la colonne Valeur.
    déjà donnée ici


    @Klemsy78

    As tu testé cette même requête dans ton sgbd ?
    Si non, fais un test et dis nous le résultat (erreur & co)

    sinon modifie ta requête afin de changer le nom de valeur

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select Id,Valeur as MaValeur,DateOperation,IDDepart,IdDonnes 
    from comptabilite 
    where IDDepart=:VIdDepart and DateOperation=:VDateF
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Dans la mesure où FieldByName de TDataSet appelle FindField, je ne vois pas trop la différence
    Lorsque j'ai fait mes tests je n'ai pas regardé quelle procedure apellait telle autre. J'ai simplement constaté que je n'avais plus de violation d'accès

Discussions similaires

  1. [Débutant] Message d'erreur lors de l'ajout de données dans une base access
    Par hugnka dans le forum VB.NET
    Réponses: 14
    Dernier message: 01/04/2012, 18h09
  2. Extraction de données dans une requête
    Par alainGL dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 05/02/2008, 00h43
  3. vc++(6)+extraction des données dans une image(.tif)
    Par spootnic22 dans le forum Visual C++
    Réponses: 1
    Dernier message: 22/11/2006, 16h14
  4. Réponses: 1
    Dernier message: 04/06/2006, 16h08
  5. extraction des données dans une table Access
    Par moabomotal dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2006, 11h17

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