表中有一个字段是varchar(73)类型的 里面存放着如01,02,03,04,05,06 等等数据,放置方法如(010203040506)我现在需要检查这些数据中有没有大于20的值,应该怎样做呢  
目前我做的是把他们用ADOQUERY SELECT 出来,放到一个A(STRING)变量里,后面确实想不起来怎么做了,哪位老大帮帮忙

解决方案 »

  1.   

    具体:
    VAR
       X:INTEGER;
    MYSTR:=ADOQUERY.FIELDBYNAME('ZIDUAN').ASSTRING;
     
       WHILE(X<LENGTH(TRIM(MYSTR)))DO
    BEGIN
       IF (STRTOINT(COPY(MYSTR,X,2))>20) THEN
       BEGIN
       SHOWMESSAGE('SOME ONE BIGGER THAN 20');
       BREAK;
       END
       ELSE
       X:=X+2; 
    END;
     ************************************************
           对不起,是我的网络慢,若有雷同请勿责怪  
     ************************************************
      

  2.   

    怎么是个死循环呀
    procedure TForm1.Button1Click(Sender: TObject);
    var
      iid, x:integer;     mystr:string;
    begin
        x:=0;
        memo1.Lines.Add('开始校验。');
         With ADOQuery1 do
         begin
            close;
            sql.Clear;
            sql.Add('select id,ltyn from Lty');
            open;
            first;
            while not ADOQuery1.Eof do
            begin
                Mystr:=fieldbyname('ltyn').AsString;
                iid:=fieldbyname('id').AsInteger;
                WHILE(X<LENGTH(TRIM(MYSTR)))DO
                BEGIN
                   IF (STRTOINT(COPY(MYSTR,X,2))>30) THEN
                      BEGIN
                       memo1.Lines.Add('chuxiancuowu '+inttostr(iid));
                       BREAK;
                      END
                    ELSE
                   X:=X+2;
                 END;
             end;
             next;
         end;
         memo1.Lines.Add('结束');
    end; 
      

  3.   

    memo1.Lines.Add('chuxiancuowu '+inttostr(iid));
                       BREAK;
                      END;
                   X:=X+2;
    试试
     ************************************************
           对不起,是我的网络慢,若有雷同请勿责怪  
                  若答案正确请尽早揭帖
     ************************************************