我在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里不显示数据,明明有数据的,有时候,先运行别的
模块,然后运行这个模块,数据就显示了。
怎么回事?
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里不显示数据,明明有数据的,有时候,先运行别的
模块,然后运行这个模块,数据就显示了。
怎么回事?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货