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 :

Out Of Memory


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut Out Of Memory
    Bonjour

    Je traite un fichier texte dans la mémoire et j’affiche le résultat dans un DBgrid via un composant Memorytable tous ca marche bien plus de ca j’ai ajouté un Botton pour effacé le contenue de la table afin de faire un autre traitement mais j’ai reçus un message qui m’informe que n’est pas une mémoire suffisante je croit ‘’ Out Of Memory’’ est ce qu’il mon code de suppression n’efface pas le contenue de la mémoire virtuel ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    repeat
    table1.Delete;
    table1.Last;
    until table1.Bof;
    button1.Enabled:=true;
    table1.Free;

  2. #2
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    with table1 do
    begin
       while not eof do
       begin
          delete;
          next;
       end;
    end;
    button1.Enabled:=true;
    table1.Free;

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 616
    Points : 25 311
    Points
    25 311
    Par défaut
    Normalement, faire un Delete, cela fait déjà un Next !
    Je pense que le code de alheuredudejeuner risque de sauter un enregistrement sur deux, donc cela n'efface que la moitié de la table ... à vérifier ...

    Pourquoi ne pas utiliser EmptyTable du TMemoryTable si cela correspond à cet Objet de la RX Lib parce que des TMemoryTable tu en trouves à la pelle !

    Ensuite, on peut espérer qu'un composant TMemoryTable libère toute sa mémoire durant son Destructeur !
    Si ce n'est pas le cas, cela semble gravissime car comment accéder à la mémoire non libérée une fois que l'objet n'existe plus ! cela n'aurait pas de sens, je pense donc que cette boucle est totalement inutile ! le Free suffit !

    Tu as un problème ailleurs !

  4. #4
    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
    Plus simplement sans avoir besoin de détruire le composant, un simple Table1.Close ne serait il pas suffisant ?

  5. #5
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu as un problème ailleurs !
    tu a raison ShaiLeTroll je crois que j'ai un problème ailleurs je reçus ce message uniquement sur un server spécifique!!!
    Citation Envoyé par Rayek Voir le message
    un simple Table1.Close
    Tout les précédents codes sont efficaces ,j’ai préféré le Table1.Close

    Merci beaucoup l’équipe

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

Discussions similaires

  1. [XStream][String]out of memory
    Par Invité dans le forum Persistance des données
    Réponses: 8
    Dernier message: 10/01/2006, 14h52
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    Réponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

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