Bonjour,
J'ai un souci, et j'ai beau chercher sur le forum, je ne trouve pas la solution. Je m'explique. Dans une procédure, j'effectue une requête "Update". Cette procédure est appelée de très nombreuses fois et après chaque appel, je constate que la connexion qui a servi pour effectuer cette procédure est encore là (je regarde dans mysql le nombre de connexion avec show processlist).
Or, le nombre de connection étant limité, j'arrive rapidement à l'exception 'too many connections' (qui est logique). Sachant que je ne veux pas augmenter le nombre de connections max, comment dois je faire pour détruire la connection ayant servi pour la requête ? J'ai essayé Free, FreeAndNil, Close, Destroy et aucun résultat.
Voici le code de la fonction qui engendre l'ajout d'une connexion supplémentaire après chaque appel :
Si quelqu'un a une piste, je suis preneur. Merci
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 procedure LierFluxHacheFluxOriginal(IdFluxHache: integer); var Query: TSQLQuery; begin Query := TSQLQuery.Create(nil); try Query.SQLConnection := TConnection.GetConnection; Query.SQL.Add('UPDATE info'); Query.SQL.Add('SET fk_id_info_deux = ' + intToStr(Id)); Query.SQL.Add('WHERE id_info = ' + intToStr(IdOriginal) + ';'); Query.ExecSQL; finally FreeAndNil(Query); end; end;
Partager