从Dephi 2006传递时如何捕获存储过程文本

大家好, 我的delphi代码中有一个大的(100+)参数列表。这适用于MS SQL Server 2005.出于调试目的,我想捕获存储过程命令的文本,因此我可以在SQL服务器上执行它并调试SP。有没有办法可以捕获究竟传递给数据库的内容?我想过使用跟踪,如果失败了,我明天会尝试,但是设置和筛选并抓住SP很麻烦。 谢谢     
已邀请:
您应该使用SQL Server Profiler。使用默认设置启动新跟踪。让它在客户端执行SP时运行。停止追踪。使用ctrl-F并搜索您的SP名称。     
我通常不关心编程环境。 如果您可以识别ClientProcessID(客户端程序的任务管理器中显示的PID),那么分析将是一个不错的选择 - 应该将其缩小到足够的范围。 我喜欢的另一种选择是在SQL Server端简单地捕获它。 样品过程
create proc takes3params
@a int, @b varchar(100), @c datetime
as
select @a, @b, @c
alter proc takes3params
@a int, @b varchar(100), @c datetime
as
insert capture_takes3params(a,b,c) select @a, @b, @c  -- << -- added
select @a, @b, @c
支持表是参数的镜像,有2个额外的控制列
create table capture_takes3params(
id int identity primary key, captured datetime default(getdate()), -- control
a int, b varchar(100), c datetime
)
当proc有默认值时,这不起作用。 编辑   我们使用ADO连接到MS SQL。不确定100+ params的替代方案是什么,可能通过表结构?建议欢迎!我们传递的HL7消息通常有100个左右的字段。 - 从我记得的情况来看,表值参数只能从SQL Server 2008开始提供。这似乎也是Delphi中的笨拙 - 我会考虑在TSQL中解析一个XML参数,而2005年对它有很好的支持。     

要回复问题请先登录注册