Entwickler-Ecke

Datenbanken - ADOConnection & Query - Statements loggen


DrNorton - Do 31.03.05 14:25
Titel: ADOConnection & Query - Statements loggen
Tach auch,

ich möchte eine Application schreiben, in der jeder Datenbankzugriff, der Daten manipuliert (INSERT,UPDATE,DELETE), in einer extra Tabelle geloggt wird. Dazu benutze ich das OnExecuteComplete-Ereignis meines ADOConnection-Obejekts. Der Code sieht so aus ...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.ADOConnExecuteComplete(Connection: TADOConnection;
  RecordsAffected: Integer; const Error: Error;
  var EventStatus: TEventStatus; const Command: _Command;
  const Recordset: _Recordset);
  var OADOLogQuery: TADOQuery;
begin
  OADOLogQuery := TADOQuery.Create(nil);
  OADOLogQuery.ConnectionString := Connection.ConnectionString;
  OADOLogQuery.SQL.Add('insert into T_LOG(statement) values('''+ Command.CommandText +''')');
  OADOLogQuery.ExecSQL;
  OADOLogQuery.Close;
  OADOLogQuery.Free;
end;


so weit so gut ...
Das Problem sind die Hochkommas für die Stringbegrenzung ... gibt es eine Methode oder Funktion mit der ich Hochkommas aus einem String escapen bzw. codieren kann ? Oder gibt es vielleicht sogar eine Komponente die ein eingenständiges Log implementiert hat ?

Im vorraus schon mal Danke für die Mühe ...

mfg
DrNorton


smiegel - Do 31.03.05 15:20

Hallo,

Zitat:
Das Problem sind die Hochkommas für die Stringbegrenzung


was meinst Du damit? Die Begrenzer im Statement? Wenn ja, dann kannst Du die doch mit StringReplace jederzeit durch andere Zeichen ersetzen.


DrNorton - Fr 01.04.05 07:24

ok ... vielen Dank ... hät ich auch selbst drauf kommen können ! :roll:
Bin halt noch recht neu in der Materie ... :wink: