Ver Mensaje Individual
  #15  
Antiguo 01-09-2021
Avatar de ethangio
ethangio ethangio is offline
Miembro
 
Registrado: jul 2008
Posts: 63
Reputación: 16
ethangio Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
Yo tengo esta (no es mía sino de un compañero):
Cita:
Empezado por engranaje Ver Mensaje
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
  // Cadena de consulta SQL
  ConsultaSQL := Query.SQL.Text;

  // Remplazamos los parámetros por sus valores
  for i := 0 to Query.Params.Count-1 do
  begin
    // Creamos el nombre del parámetro para remplazarlo
    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;

  // Insert del query
  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

Última edición por ethangio fecha: 01-09-2021 a las 21:43:48.
Responder Con Cita