until not (pos(query1.fields[4].Asstring,zjhm)>0)
in好象是集合的操作符

解决方案 »

  1.   

    delphi中的in是用于检查某一元数是否包含集合中的,你是否把sql中的in的用法和delphi中的用法搞混了?
      

  2.   

    in操作符使用错误
    你可以改用tstringlist代替数组,用indexof()>0来判断string是否在list中
      

  3.   

    function StrInArr(mStr: string; mArr: array of string): Boolean;
    var
      I: Integer;
    begin
      Result := False;
      for I := Low(mArr) to High(mArr) do
        if mStr = mArr[I] then begin
          Result := True;
          Break;
        end;
    end; { StrInArr }
        repeat
            code:=random(query1.recordcount);//产生一随机数
            query1.First;
            if code<>0 then
          query1.MoveBy(code);//定位到随机数产生的记录
        until not (StrInArr(query1.fields[4].Asstring, zjhm));//循环结束