Adoquery.close;
Adoquery.sql.text := 'select * from table';
Adoquery.open;可是在最后执行的时候,发现Adoquery.sql.text的值变成
'select * from table'#$D#$A,这个#$D#$A我知道是#13#10,可是该怎么去掉啊,我用Copy和ReplaceString都不行啊,各位能告诉我怎么处理嘛?请具体点

解决方案 »

  1.   

    Adoquery.close;
    Adoquery.sql.clear;
    Adoquery.sql.add('select * from table');
    Adoquery.open;
      

  2.   

    Adoquery.close;
    Adoquery.sql.text := 'select * from table';
    Adoquery.open;
    这样没有问题啊
      

  3.   

    可我这就是不行,也奇怪,其他的query都没问题,单单这个,换了query也不行,真的要疯了,而且以前用sqlquery的时候根本就没这问题
      

  4.   

    那是回车与换行符,用 trim() 一下就OK了。如果光这样
    Adoquery.close;
    Adoquery.sql.text := 'select * from table';
    Adoquery.open;应该没问题的。
      

  5.   

    这个问题还真是奇怪,用新建一个TStringList,把字符串的值赋给试下
    List.Text :='select * From Table1'
    AdoQuery1.SQl.Assgin(List);
    你或是用缓冲
    S:String;
    S:=''select * From Table1';
    AdoQuery1.SetBuff(PChar(S));实在不行,我再教你其他方法
      

  6.   

    最后两个换行符是在从AdoQuery.sql.Text取值的时候
    由AdoQuery.sql(也就是TStrings)自动加上去的
    看看Classes.pas 里TStrings.GetTextStr函数就知道了每次用AdoQuery.sql.text取值就会自动加上这两个
    所有从TStrings派生的类都有这个问题
    TStrings就是这么实现的,除非改VCL源代码,其实这个问题很好解决啊,
    在每次取值的时候用一下Trim不就成了
      

  7.   

    Sql.Text是Tstrings类型的,而且只要是TStrings类型的对象,它的屁股后面都有那个#13#10的东东的。哪怕里面的数据为空。其实,如果你这样写
    Sql.Text := '';
    Sql.Text := Sql.Text + 'SELECT * ';
    Sql.Text := Sql.Text + 'FROM table  ';
    的话,你看Text,里面还有呢!
    这只是Tstrings的正常反应!
      

  8.   

    http://www.somade.com/是个很专业的技术社区,去那里找找吧,或许有你要的答案~
      

  9.   

    请问怎么用Trim?是Trim(Adoquery.sql.text)?还是不行啊!!
      

  10.   

    var
       s : string;
    begin
         s := trim(Adoquery1.sql.text);
         //s中的值去掉了两头的制表符、空格
    end;通俗一点说Adoquery1.sql.text后面增加的制表符是在取值的时候自动加上的
    只能先取出来再处理楼主该去了解一下property 的实现方法
      

  11.   

    另键个form,把东西+代码都copy过去就ok了