俺的项目里需要从数据库里查询字符串,并将字符串连接起来,连接好的以'0F7F'开始,以'0F0D'结束,俺滴代码错在哪里,查询为什么进行不下去 ?  idd:=1 ;
     Form1.ADOQuery1.Close();
     Form1.ADOQuery1.SQL.Clear;
     sql:='select * from test where id='+inttostr(idd);       //按照test表里的id号一行一行顺次查询
        begin
         Form1.ADOQuery1 .SQL .Add(sql);
         Form1.ADOQuery1.Open;
          if   AdoQuery1.bof   then   
           S:=ADOQuery1.FieldByName('TJ').Value;
       if (Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)<>'0F0D')  then
           S:=s
          else
          begin
          idd:=idd+1 ;
           ADOQuery1.Next ;
         S1:=form1.ADOQuery1.FieldByName('TJ').Value;
         if(Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)='0F0D') then
         S:=s+s1;
         ADOQuery1.Next ;
          

解决方案 »

  1.   

    if  AdoQuery1.bof  then  -> while not adoquery1.eof do begin ... end
      

  2.   

    begin 
            Form1.ADOQuery1 .SQL .Add(sql); 
            Form1.ADOQuery1.Open; 
       while not adoquery1.eof do             //  <---
       begin                                             // <--
              S:=ADOQuery1.FieldByName('TJ').Value; 
          if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D')  then 
              S:=s 
              else 
              begin 
              idd:=idd+1 ; 
              ADOQuery1.Next ; 
            S1:=form1.ADOQuery1.FieldByName('TJ').Value; 
            if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then 
            S:=s+s1; 
            ADOQuery1.Next ; 
       end;                           //  <---
      

  3.   

    begin 
            Form1.ADOQuery1 .SQL .Add(sql); 
            Form1.ADOQuery1.Open; 
      while not adoquery1.eof do            //  <--- 
      begin                                            // <-- 
              S:=ADOQuery1.FieldByName('TJ').Value; 
    //      if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D')  then 
    //          S:=s 
    //          else 
    //          begin 
    //          idd:=idd+1 ; 
    //          ADOQuery1.Next ; 
            S1:=form1.ADOQuery1.FieldByName('TJ').Value; 
            if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then 
            S:=s+s1; 
            ADOQuery1.Next ; 
      end; 
      

  4.   

    我要的是从第一条记录开始,不满足条件第一条记录就加第二条记录...第三条,直到拼成一个满足条件的字符串,再进行处理;然后TEST按照ID号,处理后面的记录.
      

  5.   

    还没解决吖,那个可以加break吖
      

  6.   


    //再给你一个简单的  while not adoquery1.eof do           
      begin                                           
            S:= S + form1.ADOQuery1.FieldByName('TJ').Value; 
            ADOQuery1.Next; 
      end;
      S1:= copy(S,pos('0F7F',S),pos('0F0D',S)+4-pos('0F7F',S));
      showmessage(S1);
      

  7.   

    //写个循环从0到数据库总数,一个一个连接,找到符合条件的break;  while not adoquery1.eof do            
      begin                                           
            S:= S + form1.ADOQuery1.FieldByName('TJ').Value; 
            (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
            begin
               //dealing what you want to do
            end; 
            ADOQuery1.Next; 
            
      end;
      

  8.   


      while not adoquery1.eof do            
      begin                                           
            S:= S + form1.ADOQuery1.FieldByName('TJ').Value; 
            if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
            begin
               //dealing what you want to do
               Break;                                        //结束查找      
            end; 
            ADOQuery1.Next; 
            
      end;
      

  9.   


    idd:=1 ; 
        Form1.ADOQuery1.Close(); 
        Form1.ADOQuery1.SQL.Clear; 
        sql:='select * from test where id='+inttostr(idd);      //按照test表里的id号一行一行顺次查询 
            begin 
            Form1.ADOQuery1 .SQL .Add(sql); 
            Form1.ADOQuery1.Open; 
            Form1.ADOQuery1.First;//先行至第一条
            while not Form1.ADOQuery1.EOF do
            begin
              S:=ADOQuery1.FieldByName('TJ').Value; 
          if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D')  then 
              S:=s 
              else 
              begin 
              idd:=idd+1 ; 
              ADOQuery1.Next ; 
            S1:=form1.ADOQuery1.FieldByName('TJ').Value; 
            if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then 
            S:=s+s1; 
            ADOQuery1.Next ; 
           end;