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

C++Builder Discussion :

Erreur d'EAccessViolation avec un String *


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Juin 2007
    Messages
    362
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par d�faut Erreur d'EAccessViolation avec un String *
    Bonjour,

    Dans le but de r�cup�rer des valeurs d'un champ d'une base de donn�es, j'ai entrepris de r�cup�rer les 3 lignes d'un champ et de les stocker dans un tableau de String.

    Donc ^pour faire rapide, dans mon constructeur j'ai :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    nomEnfant = new String();
    prenomEnfant = new String();
    anneeNaissance = new String();
    Donc chaque string correspond � un champ d'une table.

    Lorsque je r�cup�re mes infos de ma table, qui ne sont que des caract�res (en mode pas � pas je visualise bien les valeurs retourn�es par ma requete SELECT), et que je veux les attribuer � chaque "tableau", j'ai un message d'erreur qui apparait pendant ma boucle.

    voici le code de ma boucle :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(i=0;i<NbreRecord;i++)
    {
       nomEnfant[i] = ObjGestionQuery->GetResultRequete("NomEnfant");
       prenomEnfant[i] = ObjGestionQuery->GetResultRequete("PrenomEnfant");
       anneeNaissance[i] = ObjGestionQuery->GetResultRequete("AnneeNaissance");
     
     
       ObjGestionQuery->GetObjDataModule().Query->Next();
    }
    Donc j'ai en amont une requete SELECT qui r�cup�re tous les champs en fonction d'une cl�.
    Ici c'est une liste d'enfant pour une famille. La cl� �tant la reference famille.

    Donc si j'ai 3 enfants, j'aurai NbreRecord = 3.

    Donc pour chaque enfant, je r�cup�re son pr�nom, son nom et sa date de naissance. Que je stocke dans les String*.
    A la premi�re boucle, je stocke bien dans l'indice [0], mais � la seconde, la boucle plante au prenomEnfant[i] =... alors que nomEnfant[i] recoit bien une valeur de type String.

    Qu'en pensez vous?

    merci d'avance

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Utilise l'objet TStringList, il est justement fais pour stocker un ensemble de cha�ne:


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    TStringList *nomEnfant = new TStringList ();
    TStringList *prenomEnfant = new TStringList ();
    TStringList *anneeNaissance = new TStringList ();
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(i=0;i<NbreRecord;i++)
    {
       nomEnfant->Add( ObjGestionQuery->GetResultRequete("NomEnfant"));
       prenomEnfant->Add( ObjGestionQuery->GetResultRequete("PrenomEnfant"));
       anneeNaissance->Add( ObjGestionQuery->GetResultRequete("AnneeNaissance"));
     
     
       ObjGestionQuery->GetObjDataModule().Query->Next();
    }

    Pour r�cup�rer les �lement :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    nomEnfant->Strings[i]
    Et ne pas oublier de d�truire les objets cr��e lorsque ceux ci ne sont plus utilis�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    delete nomEnfant ;
    delete prenomEnfant ;
    delete anneeNaissance ;

  3. #3
    Membre �clair�
    Inscrit en
    Juin 2007
    Messages
    362
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par d�faut
    Trop simple....

    J'avais compl�tement zapp� l'utilisation des STringList, d'autant que je les avait d�ja utilis�es dans la suite de mon soft....

    merci !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur de compilation avec les string et char*
    Par number9 dans le forum C++
    R�ponses: 3
    Dernier message: 30/04/2012, 09h58
  2. R�ponses: 4
    Dernier message: 07/05/2009, 15h54
  3. Erreur de compilation avec Ada.Strings.Unbounded
    Par semaj_james dans le forum Ada
    R�ponses: 7
    Dernier message: 20/04/2007, 16h28
  4. Erreur de compilation sur std::string avec Dev C++
    Par dada57 dans le forum Dev-C++
    R�ponses: 4
    Dernier message: 20/03/2006, 18h06
  5. Erreur EACCESSVIOLATION avec des compsts cr��s dynamiquement
    Par tsikpemoise dans le forum Bases de donn�es
    R�ponses: 4
    Dernier message: 28/02/2004, 19h05

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