2008-12-06 5 views

Répondre

6

À l'intérieur de votre application, vous pouvez enregistrer les commandes dans l'événement TADOConnection.OnWillExecute, il vous suffit d'enregistrer le CommandText, mais vous pouvez également enregistrer beaucoup d'autres options.

procedure TForm23.ADOConnection1WillExecute(Connection: TADOConnection; var 
    CommandText: WideString; var CursorType: TCursorType; var LockType: 
    TADOLockType; var CommandType: TCommandType; var ExecuteOptions: 
    TExecuteOptions; var EventStatus: TEventStatus; const Command: _Command; 
    const Recordset: _Recordset); 
begin 
    LogToFile(CommandText); 
end; 
+0

Je peux seulement enregistrer les sélections de cette façon, comment je peux enregistrer d'autres types de requêtes? – arthurprs

1

Je fais quelque chose de similaire, mais toutes mes requêtes passent par un seul point. C'était un simple changement pour ajouter la journalisation à ce stade. Une autre option serait de créer une classe TLogADOQuery qui descend de TADOQuery, et de remplacer ExecuteSQL et Ouvrez pour consigner le SQL allant à la base de données. Vous remplacez ensuite toutes les références à TADOQuery avec votre nouvelle classe.

Questions connexes