El problema de parámetros, tampoco es grabe, en lugar de llamar a ShowMessage, llamamos a nuestra rutina:
Código Delphi
[-]
procedure VerSentenciaSql(dt:TMDOQuery);
var i:Integer;
Sql:string;
ReplaceTo:string;
begin
sql := dt.SQL.Text;
for i := 0 to dt.params.count - 1 do
with dt.Params[i] do
begin
case datatype of
ftDate : ReplaceTo := FormatDateTime('dd/mm/yyyy',AsDAte);
ftDatetime: ReplaceTo := FormatDateTime('dd/mm/yyyy hh:nn:ss', AsDAtetime);
ftTime : ReplaceTo := FormatDateTime('hh:nn:ss', Astime);
else
ReplaceTo := AsString;
end;
sql := ReplaceText(sql, ':'+Name, ReplaceTo);
end;
ShowMessage(dt.sql.text);
end;
No incluirá las comillas simples, pero como ya sabemos, eso no es problema cuando se usa parámetros.
Saludos