我在formshow 下写这些,出毛病了:
grade1:=main.grade1 ;
spec1:=main.spec1 ;
clas1:=main.clas1 ;
specid1:=main.specid1 ;
kuname:='a'+grade1;
groupby:=kuname+'.stuid';
 radiogroup2.Enabled :=false;
 //radiogroup1.ItemIndex:=0;
  dbgrid3.Align :=alclient;
  try
    query3.close;
    query3.SQL.Clear;    query3.SQL.add('select  '+kuname+'.stuid ,student.name , sum('+kuname+'. * subject.xuefen)/sum(subject.xuefen) as zhcp from '+kuname+',student, subject where   ' );
    query3.SQL.add( kuname+'.stuid in (select stuid from student where specid='+''''+specid1+''''+' and clas='+''''+clas1+''''+')');
    query3.SQL.Add(' and student.stuid ='+kuname+'.stuid and subject.subid='+kuname+'.subid and '+kuname+'.term=:term1');
    query3.SQL.Add(' group by '+kuname+'.stuid,student.name   ');
    query3.ParamByName('term1').AsString :=trim(combobox1.Text) ;
    query3.Open;
  except
     showmessage('你的数据录入有误');
  end;with dbgrid3 do
 begin
    columns[0].FieldName :='stuid';
    columns[1].FieldName:='name';
    columns[2].FieldName:='zhcp';
  end;
       try
           with query4 do
              begin
                close;
                sql.clear;
                sql.add('select  '+kuname+'.stuid,student.name,subject.subname,,re,memo from '+kuname+',student,subject');
                sql.add(' where (<60 or re>0) and '+kuname+'.term=:term1 ');
                sql.add( 'and '+kuname+'.stuid in (select stuid from student where student.specid='+''''+specid1+''''+' and student.clas='+''''+clas1+''''+')');
                sql.add(' and student.stuid='+kuname+'.stuid and subject.subid='+kuname+'.subid order by '+groupby);
                parambyname('term1').AsString :=trim(combobox1.Text );
                prepare;
                open;
              end;
                  dbgrid4.Columns[0].FieldName :='stuid';
                  dbgrid4.Columns[1].FieldName :='name';
                 dbgrid4.Columns[2].FieldName :='subname';
                  dbgrid4.Columns[3].FieldName :='' ;
                  dbgrid4.Columns[4].FieldName :='re';
                  dbgrid4.Columns[5].FieldName :='memo';
        except
          showmessage('数据库出错');
        end;有时候打开后,dbgrid里不显示数据,明明有数据的,有时候,先运行别的
模块,然后运行这个模块,数据就显示了。
怎么回事?