Beleza pessoa?
Bom, eu fiz um trace com ADO, mas estou com dificuldade em capturar os parâmetros com ele. Sempre aparece com ? o que é parâmetro.
Estou usando isso aqui para pegar o trace:
Código:
procedure TfrmPrincipal.adoConexaoExecuteComplete(
Connection: TADOConnection; RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
begin
FrmLogSql.AddLog(
Command.CommandText,
'After '+GetEnumName(TypeInfo(TCommandType),Integer(Command.CommandType)),
GetEnumName(TypeInfo(TEventStatus),Integer(EventStatus)),
GetEnumName(TypeInfo(TCursorType),Integer(Recordset.CursorType)),
GetEnumName(TypeInfo(TADOLockType),Integer(Recordset.LockType)),
RecordsAffected);
end;
Então eu fiz um for simples, na execução da query mesmo, que consegue tanto capturar os parâmetros quanto os valores:
Código:
if qryModificar.Parameters.Count>0 then
for i:=0 to qryModificar.Parameters.Count-1 do
begin
vmsg := vmsg + ' ' + VarToStr(qryModificar.Parameters.Items[i].Name);
vmsg := vmsg + ':' + VarToStr(qryModificar.Parameters.Items[i].Value);
end;
ShowMessage(vmsg);
Alguém tem uma idéia de como implementar isso? Ou então montar a query novamente?
Estou usando Delphi 7 e MSSQL 2005