Delphi6.0,用ADOQuery检索记录,如下代码:
    ADOSQL.Close;
    with ADOSQL do
    begin
       sql.Clear;
       sql.Add('SELECT l_name FROM Music WHERE s_type=''歌曲''');
       open;
    end;
    for i:=0 to ADOSQL.RecordCount-1 do
    begin
        ADOSQL.MoveBy(i);
        tmpS:=tmpS+ADOSQL.Fields[0].Value +'\';
    end;
返回的记录条数也对了,共15条,但是奇怪的问题来了,只有前5条是正确的,从第6条开始到第15条结束都是重复的(为第15条记录),也就是说第7-14条记录的值丢了!
我是真的不知道啥子原因!!!您知道吗?难道是D版????

解决方案 »

  1.   

    因为1+2+3+4+5=15
     请改成
        for i:=0 to ADOSQL.RecordCount-1 do
        begin
            tmpS:=tmpS+ADOSQL.Fields[0].Value +'\';
            ADOSQL.next;
        end;
    另:
           sql.Clear;
           sql.Add('SELECT l_name FROM Music WHERE s_type=''歌曲''');
    ==
           sql.text:='SELECT l_name FROM Music WHERE s_type=''歌曲'''
      

  2.   

    //for i:=1 to ADOSQL.RecordCount-1 do
        while not ADOSQL.Eof do
        begin
            tmpS:=tmpS+ADOSQL.Fields[0].Value +'\';
            ADOSQL.Next;
        end;
      

  3.   

    一個問題怎麼發兩遍呀?  ADOSQL.Close;
      with ADOSQL do
      begin
        sql.Clear;
        sql.Add('SELECT l_name FROM Music WHERE s_type=''歌曲''');
        open;    tmpS := '';
        while not eof do
        begin
          tmpS := tmpS + Fields[0].Value + '\';
          next;
        end;
      end;