Cita:
Empezado por kuan-yiu
Yo tengo esta (no es mía sino de un compañero):
|
Cita:
Empezado por engranaje
Como ya te han recomendado es posible que la mejor opción para tí sea utilizar el propio log de Mysql que como leo estas investigando, o hacerte una función que recorra los parámetros de la query y los sustituya por el valor.
|
Muchas gracias a ambos, con ayuda de los 2 pude hacer mi procedimiento:
Código Delphi
[-]
procedure GuardaConsulta(Query: TZQuery; Conexion: TZConnection);
var
QInsert : TZQuery;
FechaHora : TDateTime;
ConsultaSQL,
VarTmp : String;
i : Integer;
begin
ConsultaSQL := Query.SQL.Text;
for i := 0 to Query.Params.Count-1 do
begin
VarTmp := ':'+Query.Params.Items[i].Name;
if query.Params[i].DataType = ftString then
ConsultaSQL := StringReplace(ConsultaSQL, VarTmp, QuotedStr(Query.Params.Items[i].Value), [rfIgnoreCase])
else if query.Params[i].DataType = ftInteger then
ConsultaSQL := StringReplace(ConsultaSQL, VarTmp, Query.Params.Items[i].Value, [rfIgnoreCase])
else
ConsultaSQL := StringReplace(ConsultaSQL, VarTmp, QuotedStr(Query.Params.Items[i].Value), [rfIgnoreCase]);
end;
QInsert := TZQuery.Create(nil);
try
FechaHora := now();
QInsert.Connection := Conexion;
ReadySQL(QInsert);
QInsert.SQL.Add(' INSERT INTO consultas_sql (query, fechahora) ');
QInsert.SQL.Add(' VALUES('+ QuotedStr(ConsultaSQL) + QuotedStr(FormatDateTime('yyyy-mm-dd hh:nn:ss', FechaHora)) +')');
QInsert.ExecSQL;
finally
QInsert.Free;
end;
end;
Muchas gracias
movorack por el tip y a todos por sus respuestas. Saludos desde Puebla, México