select msiGroup,WorkID,Line,endtime,length  from recordinfo where msiGroup=:group AND Workid= :Workid AND endtime>:begtime AND endtime<:endtime AND caller=:caller 
前面已经为这些变量赋了值。想把赋了值以后的整语SQL,Showmessage出来?
我用ShowMessage(Query1.SQl);
系统提示:[Error] msichaxun1.pas(111): Incompatible types: 'String' and 'TStrings'
怎么转换?

解决方案 »

  1.   

    ShowMessage(Query1.SQl.text);不对,因为它还是带着参数(也就是冒号后面的内容)。而我想要实现的是参数已经赋值了的。
    例如:
    Query1的内容如下:
    select msiGroupfrom recordinfo where Workid= :Workidedit1.text=1;
    Query1.ParamByName('workid').Value :=strtoint(edit1.text);
    Showmessage(……);
    而后弹出的内容应该为:
    select msiGroupfrom recordinfo where Workid=1怎么实现???我想看一看是不是赋值时赋错了?
      

  2.   

    你在这里Query1.ParamByName('workid').Value :=strtoint(edit1.text);
    设个断点不行吗?或者这样吧
    放在执行之前 Query1.SQl.SaveToFile('c:\sql.txt')然后知道怎么作了吧
      

  3.   

    同意 s_cube(想榛子的竹子)
      

  4.   

    Query1.SQl.SaveToFile('c:\sql.txt')
    不对,还是带参数。
    因为参数太多了,所以我想能不能一个语句,把参数已经赋好的SQL显示出来,可以实现吗?
      

  5.   


    //我建议你用编译开关进行调试!最好不要ShowMessage,因为ShowMessage显示内容不可复制,
    //建议用以下做法:窗体上放个Memo1,然后...{$DEFINE DEBUG}    //注意!!!unit u_Main;interfaceuses ...implementation{$R *.DFM}...//最好这样调调试代码,程序发布时候只要将最前头的 $DEFINE DEBUG 注释掉即可,调试时再打开开关!
    //程序根本不用改!:)
    //带参数的SQL语句好看,不好调试。
        with Query1 do
        begin  //with[
          Close;
          sSQL:= 'select msiGroup,WorkID,Line,endtime,length  from recordinfo '#13 +
                ' where msiGroup=:group AND Workid= ' + IntToStr(nWorkID) + ' +  AND ' #13 +
                ' endtime > ' + IntToStr(nWorkID) + ' AND endtime < '#13 +
                IntToStr(dtEndtime) + ' AND caller=' + caller;
          SQL.Clear;
          SQL.Add(sSQL);
          {$IFDEF DEBUG}
            Form_Main.Memo1.Lines.Add(sSQL);  //这是您的调试代码,将里边的SQL语句直接粘贴到SQL Server,Oracle里运行!
          {$ENDIF}
          try
            Open;
          except
            MessageDlg('Error!',mtError, [mbOK], 0);
            exit;
          end;      First;
          While not eof do
          begin
            //这里处理每条记录...
            Next;
          end;
          Close;
        end;  //with]
    end.
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  6.   

    如果是sql server数据库,那用sql server自带的sql事件探查器,可以看到参数值。其余的就不知道了。
      

  7.   

    用DELPHI 本身不是很容易看到,最高的一步也只有 Query1.Text;
    这样的参数被换成了 ?? 之类的东西。
      

  8.   

    why not used sql monitor!
      

  9.   

    我用这样的方法:
    ......
     SqlStr:string;     // SQL查询语句
    ......
      showmessage(sqlstr);
      Query1.Close;
      query1.SQL.Clear;
      query1.SQL.Add(sqlstr);