adoquery1.sql.Add('select top 6 id,title from jxoption');
之前要加一句:
adoquery1.sql.clear;

解决方案 »

  1.   

    在scontent := boards[i];下加上
    adoquery1.active := false;
    adoquery1.sql.cleare;
    你试试。
      

  2.   

    保险起见,
    for i:=1 to boardnum do
            begin
              scontent:=boards[i];
              adoquery1.close;
              adoquery1.sql.clear;
              adoquery1.sql.Add('select top 6 id,title from jxoption');
              adoquery1.sql.add(' where boardname=:boardname order by id desc');
              ADOQuery1.Parameters.ParamByName('boardname').Value:=scontent;
              ADOQuery1.open;
            end;
      

  3.   

    不知道你这样做的意义。
    做个循环最后ADOQuery1数据集里存的是最后一个条件筛选的内容,即:
    ADOQuery1.Parameters.ParamByName('boardname').Value:=boards[boardnum];
    没有必要用循环吧?!
      

  4.   

    还是报错,而且是报同样的错,高手帮帮我吧,我用query就不会出现这样子的问题呢!
            adoquery1.close;
            adoquery1.sql.Add('select top 6 id,title from jxoption');
            adoquery1.sql.add(' where boardname=:boardname order by id desc');
          for i:=1 to boardnum do
            begin
              scontent:=boards[i];
              ADOQuery1.Parameters.ParamByName('boardname').Value:=scontent;
              ADOQuery1.open;          while not adoquery1.eof do
                begin
                  scontent:=format('%8s%50s',[adoquery1['id'],adoquery1['title']]);
                  tmp.Add(scontent);
                  adoquery1.next;
                end;
             adoquery1.close;
            end;
      

  5.   

    cobi没错关键在这几句
             adoquery1.close;
             adoquery1.sql.clear;
             ……
             adoquery1.open;          
      

  6.   

    喂,我说哥们:
    ——你不看caoyq(草民呆瓜)
      

  7.   

         for i:=1 to boardnum do
            begin
              scontent:=boards[i];
              adoquery1.close;
              adoquery1.sql.Add('select top 6 id,title from jxoption');
              adoquery1.sql.add(' where boardname=:boardname order by id desc');
          
              ADOQuery1.Parameters.ParamByName('boardname').Value:=scontent;
              ADOQuery1.open;          while not adoquery1.eof do
                begin
                  scontent:=format('%8s%50s',[adoquery1['id'],adoquery1['title']]);
                  tmp.Add(scontent);
                  adoquery1.next;
                end;
            adoquery1.close;
            end;
      

  8.   

    无论你如搞,最后只会打开一个ADOQuery1啊!!!这样岂非脱了裤子放屁?
    如果你要打开一串ADOQuery,那你也应该将ADOQuery声明成一个ADOQuery数组才行,且每次循环都给不同的ADOQuery。SQL赋值并打开啊。
      

  9.   

          with ADOQuery1 do
            begin
              close;
              for i:=1 to boardnum do
                begin
                  with sql do
                    begin
                      clear;
                      add('select top 6 id,title from jxoption');
                      add(' where boardname=:boardname order by id desc');
                    end;
                  trou:=boards[i];
                  Parameters.ParamByName('boardname').Value:=trou;
                  if not prepared then
                    prepared;
                  try
                    open;
                  except
                    execsql;
                  end;              while not eof do
                    begin
                      scontent:=format('%8s%50s',[ADOquery1['id'],ADOquery1['title']]);
                      tmp.Add(scontent);
                      next;
                    end;
                end;
            end;
    这段代码我只是把query1改成了adoquery1,其他都没变,可是query1就行,真是搞怪了!
      

  10.   

    SQL.Add()是累加,当然要出错啦,要先Close,在Clear,然后在Add