那forgot2000就来者均给一点罗,大家先搞好搞好关系嘛

解决方案 »

  1.   

    用以下语句:
    ShowMessage(Query1.SQL.GetText);
      

  2.   

    query1.sql和strings的用法基本上一样。
      

  3.   

    晚了,来点特殊的:
    Application.MessageBox(PChar(Query1.SQL.Text),'你的SQL语句是:',0)
      

  4.   

      呵呵,同意上面(不同意delphi哥哥会扁我的)
      

  5.   

      呵呵,同意上面(不同意delphi哥哥会扁我的)
      

  6.   

    不对,不是我想要的结果,我想要的是真正可以在SQLServer的"查询分析器"中执行的SQL语句,比如,原来的SQL语句为'where Id=:Id',而paramByName('Id').AsInteger的值是在程序中动态赋值的,但用showmessage(Query1.sql.text)或者showmessage(Query1.sql.gettext)等语句弹出对话框的语句还是"Id=:Id",我要求的是类似"Id=1"这样的实时查询语句。
      

  7.   

    你可以把SQL语句写成如下形式:
    id := Edit1.Text; 
    tSQL := ...+ 'where Id='''+id+'''';
      

  8.   

    我觉得这个问题应该很好写·: cdkogh(xp++) 的办法应该可以!呵呵!
      

  9.   

    没有什么直截了当的办法吗?我不想重写我的大部分代码,只是想用来调试方便,在每个Query.open语句前写一句代码就能在程序中实时地了解程序执行的SQL语句。
      

  10.   

    showmessage(query1.sql.text + query1.parambyname('id').asstring); 
      

  11.   

    本来以为这个问题很简单,还是没有人能回答这个问题,建议大家看清楚问题再试试,到底用什么语句可以直接Showmessage出可以在SQLServer的“查询分析器(Query Analyzer)中直接执行的标准SQL语句。
      

  12.   

    到底有没有一种通用的写法呢?适合所有的正要打开的Query。
      

  13.   

    如果你要得到带入参数以后的实际SQL的话,请自行查看TQuery类的源代码,那里面有分析Parameters的方法