我试图使用TSQLMonitor组件,但我没有成功...跟踪与TSQLMonitor不工作
我有如下的代码在我OnTrace事件:
procedure TForm1.SQLMonitor1LogTrace(Sender: TObject; TraceInfo: TDBXTraceInfo);
begin
memo1.Lines.Add(traceinfo.message);
end;
厂也是如此,但是SQL命令中的“我的”值由问号(“?”)表示,我不是没有理由!看一个例子:
INTERBASE - isc_start_transaction
INTERBASE - isc_dsql_allocate_statement
**update "CDSUBPRODUTOS" set
"DATAINCLUSAO" = ?
where
"CDSPRCODIGO" = ? and
"DATAINCLUSAO" = ? and
"DATAALTERACAO" is null and
"CODUSUARIOALTERACAO" = ? and
"CDSPRCODGRUPO" = ? and
"CDSPRSITUACAO" = ? and
"CDSPRDESCRICAO" = ? and
"CDSPRMEDIDA" = ? and
"CDSPRVALOR" = ? and
"CDSPRUTILIZARFORMACAOPRECO_SN" = ?**
INTERBASE - isc_dsql_prepare
INTERBASE - isc_dsql_sql_info
INTERBASE - isc_portable_integer
INTERBASE - isc_dsql_describe_bind
INTERBASE - SQLDialect = 3
INTERBASE - isc_dsql_execute
INTERBASE - isc_dsql_free_statement
INTERBASE - isc_dsql_free_statement
INTERBASE - isc_commit_transaction
我会喜欢这些符号被替换为正确的值(在这种情况下,更改后的值)。我正在使用Delphi XE和Firebird 2.5。
如果有人能帮助我,我会感激!拥抱!
您是否使用参数化查询?如果我没有记错,那么确实看到没有参数值的SQL。这些日志不会在日志中出现吗? –
谢谢Jan Doggen,但我不使用参数。我做了一个简单的例子,只是把GRID,NAVIGATOR,SQLMonitor和MEMO来获取指令,结果如上所示... –
看到我没有正确检查ClientDataSet标志,因为它是一个简单的测试... =/ –