我的代码如下
      with DataModule1.TEMQuery1 do
          begin
            close;
            sql.Clear;
            sql.Add('select 学号 from Student_info where 班级号=');
            sql.Add(''''+trim(xkbj.Items[bjitemIndex])+'''');
            open;    showmessage(sql.Text); 
            while not(DataModule1.TEMQuery1.Eof) do
            begin  
              with DataModule1.TEMQuery2 do
              begin
              close;
              sql.Clear;
              sql.Add('insert into Student_course(学号,课程号,开课学期,任课老师职工号,课程类型) values(');
              sql.Add(''''+trim(DataModule1.TEMQuery1.fieldbyname('学号').AsString)+''',');
              sql.Add(''''+trim(ADOQuery6.fieldbyname('KCH').AsString)+''',');
              sql.Add(''''+kkxq.Text+''',');
              sql.Add(''''+trim(dyjs.Items[jsitemIndex])+''',''必修'')');
          
              ExecSQL;
              end;
              DataModule1.TEMQuery1.Next;
            end;          end;显示    showmessage(sql.Text);语句 但是不进入while not(DataModule1.TEMQuery1.Eof) do
为什么?????紧急!!!

解决方案 »

  1.   

    1、确认SQL语句是否能查出数据
    2、循环中少了一条Next语句:  while not(DataModule1.TEMQuery1.Eof) do
      begin   
      with DataModule1.TEMQuery2 do
      begin
      close;
      sql.Clear;
      sql.Add('insert into Student_course(学号,课程号,开课学期,任课老师职工号,课程类型) values(');
      sql.Add(''''+trim(DataModule1.TEMQuery1.fieldbyname('学号').AsString)+''',');
      sql.Add(''''+trim(ADOQuery6.fieldbyname('KCH').AsString)+''',');
      sql.Add(''''+kkxq.Text+''',');
      sql.Add(''''+trim(dyjs.Items[jsitemIndex])+''',''必修'')');
        
      ExecSQL;
    //下移一条记录
      Next;  end;
      

  2.   

    你有NEXT,应该是select中结果为空吧。
    while not Eof do
    当数据集的内容不为空时 做begin end 内的事情
    试一下你的sql语句~