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 :

[D7][TAdoConnection]Creation dynamique / fuite de mémoire


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut [D7][TAdoConnection]Creation dynamique / fuite de mémoire
    Bonjour.

    J'ai testé le très simple code ci-dessous et je me suis aperçu qu'il y avait systématiquement une fuite de mémoire d'environ 1500 octets...

    Le problème est que pour mon test, ce n'est pas grave, mais pour mes autres programmes, cette même fuite mène vite à des Méga octets !

    Est-ce que je m'y prends mal quelque part ?

    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
    procedure TForm1.Button1Click(Sender: TObject);
        var
            myConnection : TADOConnection ;
        begin
            myConnection := TADOConnection.create(Form1);
            with myConnection do
            begin
                LoginPrompt := false ;
                Connected := false ;
                ConnectionString := Form1.ADOConnection1.ConnectionString ;
                connected := true ;
            end;
     
            myConnection.Connected := false ;
            freeandnil(myConnection);
        end;
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

  2. #2
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut
    Bon, après pas mal de recherches supplémentaires (j'avais déjà cherché avant hein ? ), j'ai trouvé un lien intéressant... http://groups.google.com/group/borla...0c164779c8ac25 dans lequel le message n°7 plus particulièrement a attiré mon attention.

    Il y est proposé de rectifier légèrement ADODB.pas.

    1°) Utilisant un TAdoConnection, et non TAdoCommand ou TAdoQuery, je ne sais pas si ça va résoudre mon problème. M'enfin bon, je veux bien essayer.

    2°) Je ne suis pas super enthousiaste à l'idée de modifier un fichier de la VCL (AdoDb.pas) mais bon, il n'y a peut-être pas d'autre solution...

    3°) Comment faire pour modifier le fichier et que les modifications soient prises en compte ? Je suis quasi sur que modifier le fichier et l'enregistrer ne suffit pas !

    Donc : la proposition est-elle judicieuse ? Si oui, quelqu'un veut-il bien me donner son avis ou m'aider ? Merci.
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

  3. #3
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 897
    Points : 6 024
    Points
    6 024
    Par défaut
    Est-ce que l'update en 7.1 proposé par Borland ne résoudrait pas ce problème ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  4. #4
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut
    Ok,

    Je tente de me procurer l'update 7.1, mais un cafouillage au niveau des licences delphi de mon entreprise me met des battons dans les roues.

    C'est pas gagné d'avance
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

  5. #5
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 897
    Points : 6 024
    Points
    6 024
    Par défaut
    Avant de l'appliquer cet update, assure toi de l'innocuité du patch par rapport à ton organisation;

    Et vérifie les ++ apportés par le patch: si aucun apport ADO, passe ton chemin !
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  6. #6
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut
    La nécessité d'apporter une solution rapidement m'a poussé à fournir un programme où le problème a été contourné en attendant d'être peut-être réglé via l'update (caffouillage pas vraiment en voie de résolution dans ma boite )

    Je n'avais pas pensé qu'il puisse y avoir des effets secondaires négatifs à l'installation de l'update ! Je trouve ça assez dingue d'ailleurs et tristement, pas si surprenant que ça tout compte fait... Je vais me renseigner un peu plus à ce propos, merci de l'avertissement.



    Au fait, alors que je suivais la conso mémoire de mon appli, j'ai remarqué qu'une destruction dans le code de l'appli n'était pas forcément suivi sur le champ d'une libération de mémoire. Delphi enregistrerai-t-il l'instruction de libération mémoire pour ne libérer "effectivement" la mémoire que quand ça l'arrange plutôt qu'immédiatement ?
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

Discussions similaires

  1. [en C]creation dynamique d'interface
    Par ronan99999 dans le forum Windows
    Réponses: 3
    Dernier message: 19/08/2004, 13h53
  2. [VB.NET] Erreur sur la creation dynamique d'une texbox
    Par headcooper dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/07/2004, 20h34
  3. Réponses: 8
    Dernier message: 04/09/2003, 17h07
  4. Creation dynamique d'un objet
    Par Tom_sawyer13 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/08/2003, 19h31
  5. Réponses: 8
    Dernier message: 17/10/2002, 13h52

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