我需要拦截在 ADO 连接组件和数据库服务器之间传递的所有 SQL 命令。类似于 dbExpress 的 TSQLmonitor ,但用于 ADO 。
有人知道实现此功能的任何第三方组件吗?
更新
我想要做的是在不使用外部工具的情况下以编程方式(通过代码)从我的应用程序监视 SQL 语句。适用于任何数据库引擎。
最佳答案
我找到了一个解决方案,使用事件 TAdoConnection.OnWillExecute (发生在数据库服务器表示接受命令执行之后。)
更多信息 here
procedure TDataModuleProd.ADOConnection1WillExecute(
Connection: TADOConnection; var CommandText: WideString;
var CursorType: TCursorType; var LockType: TADOLockType;
var CommandType: TCommandType; var ExecuteOptions: TExecuteOptions;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
begin
AddLog(CommandText);
end;
我在我的博客上写了一篇小文章,供那些想要更多信息的人使用。
http://theroadtodelphi.wordpress.com/2010/02/21/build-your-own-profiler-using-ado/
关于delphi - 如何监视通过 ADO 连接发送的 SQL 命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2067390/