你在执行function1的时候,都把query1.sql.clear了,哪还有数据呀也就是说,你执行后面的插入操作时把前面的查询结果都冲掉了,哪还有query1.next呀建议你弄两个query, 一个查询,一个插入

解决方案 »

  1.   

    在循环中,你把query1重置了,重置后的query1不返回结果集,所以出错。另:即使循环里是返回结果集的query也不行,在一段代码中最好不要用同一个query在循环里用另外一个query操作就行了
      

  2.   

    function1:
    query1.insert;
    query1['lucky_num]:='AA';
    query1['Tel_num']:='BB';
    query1.post;
      

  3.   

    query.open;
    query.first;
    while not Query1.Eof do
    begin
      function1;
      Query1.Next;
    end;在function1中执行一个语句存入另外一个表:
    Query2.SQL.Clear;
    Query2.SQL.Add('Insert into Lucky_info(Lucky_Num, Tel_Num)');
    Query2.SQL.Add('Values(:AA, :BB)');
    Query2.ParamByName('AA').AsString := Query.fieldsbyname('tel_num')
    Query2.ParamByName('BB').AsString := 'tmp';
    Query2.ExecSQL;
      

  4.   

    我知道了:
    query.open;
    query.first;
    while not Query1.Eof do
    begin
      function1;
      //这里应为query.Next,你打错了不是Query1
      Query1.Next;   
    end;