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

Lazarus Pascal Discussion :

Libérer TParam dans requête SQL [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Libérer TParam dans requête SQL
    Bonjour,

    Je fais une requête (sur une base SQLite).
    Tout fonctionne correctement, par contre, à la fermeture de l'application, un message m'informe qu'un objet n'a pas été libéré.
    Cela correspond à l'objet p := TParam.Create(qry.Params, ptInput);
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    function TestSQL: String;
    var
      qry: TSQLQuery;
      p: TParam;
      i: Integer;
    begin
      Result := '';
     
      Datas1.SQLite3Connection1.DatabaseName := DB_NAME;
      Datas1.SQLite3Connection1.Connected    := True;
      Datas1.SQLTransaction1.DataBase := Datas1.SQLite3Connection1;
      Datas1.SQLTransaction1.Active   := True;
     
      qry := TSQLQuery.Create(nil);
      qry.DataBase := Datas1.SQLite3Connection1;
      qry.SQL.Text := Format('SELECT * FROM %s WHERE code like :code '
                             ,[TBL_DEVISES]);
     
      p := TParam.Create(qry.Params, ptInput);
      p.Name := 'code';
      qry.Params.AddParam(p);
     
      qry.ParamByName('code').AsString := 'EUR';
     
      try
        qry.Open;
        if (not qry.EOF) then
          Result := qry.FieldByName('CODE').AsString + ' : ' + qry.FieldByName('NOM').AsString;
      finally
        for i:=0 to Pred(qry.Params.Count) do
          qry.Params.Items[i].Free;
     
        FreeAndNil(qry);
      end;
    end;
    Comment libérer proprement le ou les TParams ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Bonjour.

    Peut-être p.Destroy ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai finalement trouvé, c'est plus simple que ce que je faisais, je ne sais pas d'où j'ai sorti ce code...

    En fait, je n'ai pas besoin de p := TParam.Create(qry.Params, ptInput);Ce code fonctionne très bien :

    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
    27
    28
    29
     
    function TestSQL: String;
    var
      qry: TSQLQuery;
      p: TParam;
      i: Integer;
    begin
      Result := '';
     
      Datas1.SQLite3Connection1.DatabaseName := DB_NAME;
      Datas1.SQLite3Connection1.Connected    := True;
      Datas1.SQLTransaction1.DataBase := Datas1.SQLite3Connection1;
      Datas1.SQLTransaction1.Active   := True;
     
      qry := TSQLQuery.Create(nil);
      qry.DataBase := Datas1.SQLite3Connection1;
      qry.SQL.Text := Format('SELECT * FROM %s WHERE code like :code '
                             ,[TBL_DEVISES]);
     
      qry.ParamByName('code').AsString := 'EUR';
     
      try
        qry.Open;
        if (not qry.EOF) then
          Result := qry.FieldByName('CODE').AsString + ' : ' + qry.FieldByName('NOM').AsString;
      finally
        FreeAndNil(qry);
      end;
    end;
    Merci et à+

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

Discussions similaires

  1. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10
  2. [VB6]Fonction dans requête SQL Access
    Par jean-pierre96 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/04/2006, 19h44
  3. TEdit.Text dans Requête SQL?!?
    Par zarbydigital dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2005, 09h37
  4. [Visual Web] [SJSC] Concaténation dans requête SQL
    Par Original Prankster dans le forum NetBeans
    Réponses: 22
    Dernier message: 15/08/2005, 14h50
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15

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