在窗体上扔一个TEdit控件,然后打入代码
Edit1.Text:=ADOQuery1.SQL.Text;
就行了

解决方案 »

  1.   

    ShowMessage(ADOQry->SQL->Text);不行么?
      

  2.   

    ADO的动态SQL语句跟踪不了,你死了这个心吧。
      

  3.   

    回答好残忍呀!ShowMessage(ADOQry->SQL->Text);不行么?
    看到的是没替换的语句
      

  4.   

    Memo.Lines:=ADOQuery1.SQL;ShowMessage(ADOQry->SQL->Text);不行么?
      

  5.   

    Memo.Lines:=ADOQuery1.SQL;ShowMessage(ADOQry->SQL->Text)
    不行
      

  6.   

    那样看不到参数的。你想看参数啊?用sql monitor吧,好象是这么写的。
    就在ide里。
      

  7.   

    yansea(思宏) 
    你不知道sql monitor只能用在BDE上面吗?对于ADO没用的
      

  8.   


        ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username="+quotedStr(CmbBoxUser->Text;)
        ADOQry->SQL->Add(' and password="+quotedStr(EdtPW->Text));
        ADOQry->Prepared= true;
        ADOQry->Open();
        ShowMessage(ADOQry->SQL->Text);
        可以了吧
      

  9.   


        ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username="+quotedStr(CmbBoxUser->Text));
        ADOQry->SQL->Add(' and password="+quotedStr(EdtPW->Text));
        ADOQry->Prepared= true;
        ADOQry->Open();
        ShowMessage(ADOQry->SQL->Text);
        可以了吧
      

  10.   

    m_leaner(追鑫) 
    我原来就这么写的,而且用了几年了
    但是这样不好保存sql的模板,
    写成了 "select * from xxx where id=%s"然后用format替换,但是发现它对于字符串中 '和%处理得不好,
    虽然 quotedStr可以解决 '的问题,但是对于 %也没办法,考虑到delphi的参数替换不错,所以才用,但发现没法子看sql语句了。
      

  11.   

    rzh(小江西) 
    你来灌水的?!
    你看没看明白题呀!看没看我前面写得什么?
      

  12.   

    自己写个函数来生成SQL语句咧
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    99999999999B@B@B@BBBMMMM999999999999999999999999999
    999999999999M+:.:+9999M:999999999999999999999999999
    9999999999999MM9+99MMM:9999999999999999999999999999
    99999999999999M+.+99M:99999999999999999999999999999
    99999999999999B:.++9M:99999999999999999999999999999
    99999999999999B+.+99M:9999AAAAAA9999999999999999999
    99999999999999B:.++9M:9AAA++++:+AAA9999999999999999
    99999999999999B+.+99M:A+9+A:+++++9AA999999999999999
    99999999999999B:.++9:A+@+A:,:++9+A9@M99999999999999
    99999999999999B+.+9:A+A,,,,,,+A+A9@A@M9999999999999
    99999999999999B:.++A+A+,,.,,+A9A9@A@M@M999999999999
    99999999999999B+.+9AA+,,...,++A9@A@A@MM999999999999
    99999999999999B:.+:A+++,,.,,++9@A@A@M@M999999999999
    99999999999999B+.+A+@+,,,,,+9A@A+@@M@M@M99999999999
    99999999999999B:.+A@+++,+,+9A9A++@M@M@MM99999999999
    99999999999999B+.+A+@++++++A9A++9M@M@M@M99999999999
    99999999999999B:.+A@+@+:+9A9A9A9M@M@M@9M99999999999
    0A999999999999B+.+A+@+@+@+@+@A@A@9@9@9@M99999999999
    99999999999999B:.+A@+@+@+@+@+@A@M@9@9@9M99999999999
    99999999999999B+.+:A@+@+@+@+@A@M@9@9@9M999999999999
    99999999999999B:.+:A9@+@+@+@9@A@M@9@9@M999999999999
    99999999993333333333M9@9@9@9@9@M@9@9@9M999999999999
    99999999993.........MAA99@9@9@M@9@9@9M9999999999999
    99999999993...MMMM..MM@9@9@9@9@M@9@9M99999999999999
    99999999993....MMM..M:M@9@9@9@9@9@9M999999999999999
    99999999993...MMMM..M:9MMM@9@9@9MMM9999999999999999
    99999999993..MMM.M..M:9999MMMMMM9999999999999999999
    99999999993..MM.....M:99999999999999999999999999999
    99999999993..M......M:99999999999999999999999999999
    99999999993...M.....MM:9999999999999999999999999999
    99999999993.........M9M:999999999999999999999999999
    9999999999MMMMMMMMMMMMMM:99999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    99999999999999999999.9999999.9999999999999999999999
    9999999....999999999.9999999.99999.999999..99999999
    9999999.999.99999999.9999999.99999999999.9999999999
    9999999.9999.99...99.9....99....99.9999.99999999999
    9999999.9999.9.999.9.9.999.9.999.9.9999....99999999
    9999999.9999.9.....9.9.999.9.999.9.9999.999.9999999
    9999999.9999.9.99999.9.999.9.999.9.9999.999.9999999
    9999999.999.99.999.9.9.999.9.999.9.9999.999.9999999
    9999999....9999...99.9....99.999.9.99999...99999999
    9999999999999999999999.9999999999999999999999999999
    9999999999999999999999.9999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999990
      

  13.   

    delphi_xizhousheng(西周生) 你灌水呢?
      

  14.   

    添加一个Memo1控件
        ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username=:Username and password=:Password");
        ADOQry->Parameters->ParamByName("Username")->Value= CmbBoxUser->Text;
        ADOQry->Parameters->ParamByName("Password")->Value= EdtPW->Text;
        ADOQry->Prepared= true;
        ADOQry->Open();
        Memo1.Text:=ADOQry.SQL.Text;
    收工。
      

  15.   

    添加一个Memo1控件
       ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username=:Username and password=:Password");
        ADOQry->Parameters->ParamByName("Username")->Value= CmbBoxUser->Text;
        ADOQry->Parameters->ParamByName("Password")->Value= EdtPW->Text;
        ADOQry->Prepared= true;
        ADOQry->Open();
        Memo1.Lines.Text:=ADOQry.SQL.Text;
    收工。
      

  16.   

    ADOQuery1.Open;
    ShowMessage(ADOQuery1.SQL.CommaText);
      

  17.   

    Qry1.Open;
    ShowMessage(Qry1.Sql.CommaText);其中Qry1(TADOQuery);
      

  18.   

    我想你可以用数据库的SQL语句分析器和跟踪器
      

  19.   

    kds(生) 的答案让我哭笑不得,
    你们就是靠这个骗分吗?这点基本的素质都没有?
    看不到前面的问题和前面别人已经说过的内容?Mike_Ge(蜜蜂)
    我谢谢你的胡说八道!
    你看看帮助那个CommaText是干吗的。wg007(迈克)
    你给我推荐一个分析器和跟踪器,你用过哪个?
      

  20.   

    kds(生) 的答案让我哭笑不得,
    你们就是靠这个骗分吗?这点基本的素质都没有?
    看不到前面的问题和前面别人已经说过的内容?Mike_Ge(蜜蜂)
    我谢谢你的胡说八道!
    你看看帮助那个CommaText是干吗的。wg007(迈克)
    你给我推荐一个分析器和跟踪器,你用过哪个?
      

  21.   

    我不是说过“ADO的动态SQL语句跟踪不了,你死了这个心吧。”了吗?怎么现在还不结贴?我一般同一句话不想再说第二次。虽然是泼你冷水,但我的答案肯定是正确的。为什么这么说呢?因为Delphi里使用的ADO只不过是对微软的ADO原生对象的一个简单的封装,最后还是通过调用ADO底层那些Dll函数来完成通用的数据引擎的操纵,这个过程是Borland公司无法控制,微软公司给其他厂商只是提供了外层封装的一些接口而已,真正对数据库操作的函数是保密的,所以如果说有第三方厂商能够跟踪ADO对数据库操作的动态SQL语句,那是假的!至于是不是完全没有办法,那倒不一定,如果你用回微软自己的SQLServer,在事件查看器里就可以看到正在执行的SQL语句,当然,其他的大型数据库也可能有这个功能。但都是自身所带的工具,原则上所以对其数据库的操作,不管ODBC、ADO或者BDE都好,都可以跟踪出来。
      

  22.   

    huangcf(huangcf)ADO的确是微软的东西,我也不指望能bcb能跟踪,
    但是TParameters这个东西可是borlandc自己的,他的ParamByName生成的sql语句怎么能看不到呢?
    这个borland应该容易吧?
      

  23.   

    huangcf(huangcf)
    我说的不对吗?
    别生气,我不是专牛角尖。
      

  24.   

    pazee(耙子),其实你就是在钻牛角尖,知道吗?而且,大家的回复即使有错,你也不应该骂人家,愿意帮你才给你回帖,那是对你的支持,怎么能叫“骗分”,“胡说八道”呢?说句老实话,大家到这里来,我想更多的人目的同我一样,以学习经验,汲取知识为目的,帮助他人是我们的快乐。至于那没有任何用处的分,那些都是虚的。除了虚荣,没有任何用处。好,言归正传。你的问题,我在看了huangcf(huangcf) 的最后回复后,也有同感。微软在这一方面的确比较霸道,Borland确实无法操纵底层的内核。至于你想在Debug时查看SQL的属性,大家已经把能够想到的办法都提供出来了,差不多是能想到的最好的办法了。如果你坚持一定要在运行时获得SQL中的Text,我建议你还是不要使用参数查询。或者,你自己写一些代码,把SQL语句构造出来,这样更好些。其实,参数的赋值,说白了就是替换掉原SQL语句中的冒号参数。这是一个简单的道理,不是吗?不管怎么说,你应该向被你骂过的人道歉。这样,你今后才能在这个论坛继续提问题,继续生存下去。大家只有这样,才能够维护一个良好的社区风气,才能获取大家间彼此的尊重。
      

  25.   

    所以你应该把自己绑好,带上藤条,到被你黑过的同行门前请求被鞭打宽恕,唉,同情~~~~~~~~~~~~~~~~~~~~~
       你可用SQL SERVER自带的跟踪器,直接查看跟踪结果就可以了,通过DELPHI中的SQL属性看参数是不可能的
      

  26.   

    在server上启动trace,一目了然,特别对非调试环境
      

  27.   

    我再次声明,我要的不是监控ms 的ado的sql,我是要看borland替换完参数的结果,这个和ms没关系,bde也一样有着问题,这个应该还在vcl的范畴。我只是问这个问题,是个技术上的,我想很多人都会遇到,我也一直在用format来生成sql,但是写着比较麻烦,而且还要处理类似'这类的符号。tttk(要做就做最好) 
    谢谢你的批评,感谢你的直率!
    第一,我没骂人;第二,你不得不承认很多人的回答根本就是不负责任的,同样一句话会被n个人说,即使前面告诉了这是错的,如果她负责人仔细看过了帖子我想他不会这么回答的,不要说他们不懂(不懂回答什么);第三,不知道人,可以关注,可以帮我找答案,但不该上来说废话,说没有根据的错话,耽误大家的时间;第四,这个问题,我的分数从20分加到了100分,表示了我对此题的重视,我原来没觉得难,现在看来的确是个难题。我在csdn上面问了20几个问题,只有个别的回答精彩,然我佩服,其余的都是灌水。当然不可否认csdn藏龙卧虎。我在csdn不是一天两天了,我明白里面的东西,很多人是为了分,他虽然不是钱,这个分数是csdn的动力,没必要回避。
      

  28.   

    ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username=:Username and password=:Password");
        ADOQry->Parameters->ParamByName("Username")->Value= CmbBoxUser->Text;
        ADOQry->Parameters->ParamByName("Password")->Value= EdtPW->Text;
        ShowMessage(ADOQry->SQL->Text);  //在打开前才能看
        ADOQry->Prepared= true;
        ADOQry->Open();
      

  29.   

    ADOQry->Active= false;
        ADOQry->SQL->Clear();
        ADOQry->SQL->Add("select id from account");
        ADOQry->SQL->Add("where username=:Username and password=:Password");
        ADOQry->Parameters->ParamByName("Username")->Value= CmbBoxUser->Text;
        ADOQry->Parameters->ParamByName("Password")->Value= EdtPW->Text;
        ShowMessage(ADOQry->SQL->Text);  //在打开前才能看
        ADOQry->Prepared= true;
        ADOQry->Open();
      

  30.   

    to genphone_ru(票票) 
    打开前,打开后都没用,看到的都是没有替换过的。
      

  31.   

    你的确是钻了牛角尖,宝兰公司驾奴不了ADO,所以一直Bug多多,而且在微软不断升级ADO的过程中,宝兰也得跟着其步伐推出UpdatePatch,我觉得huangcf(huangcf)说到点上了,我赞同她的说法。
      

  32.   

    算了!
    不研究了,我昨天看了vcl的源代码,他没有在提交之间进行替换,只是保留了参数到Parameters里面,
    然后一起提交给后台的。
    在publish 里面看不到的。但是TQuery能看到替换完了的sql吗?
      

  33.   

    TQuery根本不做替换,TQuery中的SQL语句就是标准的SQL语句。
    我还是习惯用TQuery,全部用SQL语句来处理。
    加上直接用DBLIB做程序,就不用转换过去转换过来