TADOQuery使用参数,然后给他的SQL语句赋值,
如果得到它赋值以后的SQL语句呢?比如说ADOQuery1,
他的SQL为select * from Orders where OrderID > :参数1,
给它的参数1赋值以后,
用事件探测器得知它送到SQLServer的语句为:
exec sp_executesql N'select * from Orders where OrderID > @P1
', N'@P1 int', 100能不能在程序中得到这个语句?如何得到?谢谢

解决方案 »

  1.   

    你要通过select * from Orders where OrderID  > :参数1,得到
    exec sp_executesql N 'select * from Orders where OrderID  > @P1
    ', N '@P1 int ', 100 是这样吗?
      

  2.   

    hongqi162 :
    是的,是那个意思。
    在将参数1设置为100以后,应该得到那个结果。
    怎么得到?自己分析当然可以,
    我是问下有没有直接的方法。
      

  3.   

    通过fn_trace_geteventinfo是不是可以得到?
    我不用sqlserver,不能测试
      

  4.   

    月亮兄,你指的这个fn_trace_geteventinfo是个什么东东?
    存储过程?
      

  5.   

    确实有此函数,
    不过好像还要什么traceid,很复杂的样子。sqlserver的文档中如是说:
    _____________________________
    fn_trace_geteventinfo
    返回有关跟踪的事件信息。语法
    fn_trace_geteventinfo ( [ @traceid = ] trace_id )参数
    [ @traceid = ] trace_id此跟踪的 ID,trace_id 的数据类型为 int,没有默认设置。用户使用 trace_id 值识别、修改和控制跟踪。 返回表
    列名 数据类型 描述 
    EventID int 跟踪的事件的 ID 
    ColumnID int 为每个事件收集的所有列的 ID 号 
    注释
    fn_trace_geteventinfo 是 Microsoft® SQL Server™ 2000 的内置函数,该函数执行许多以前由 SQL Server 早期版本提供的扩展存储过程所执行的操作。使用 fn_trace_geteventinfo 而不使用: xp_trace_geteventclassrequired
    xp_trace_getqueuecreateinfo
    xp_trace_getqueueproperties 
    若要获得过去由 xp_trace_geteventclassrequired 返回的信息,例如,用下列格式执行查询:SELECT *
    FROM ::fn_trace_geteventinfo(trace_id)
    WHERE EventID= 'x'
    请参见
      

  6.   

    showmessage(ADOQuery1.sql.text);
     就可以在程序中看得到SQL 语句了
      

  7.   

    78hgdong:看到的是有冒号的sql语句。
    我要的是替换以后的。