procedure TForm1.RadioButton1Click(Sender: TObject);
var ms,ms1,i,j:integer;
begin
ms1:=0;
if RadioButton1.Checked then
begin
ms1:=MessageBox(0,'你确定要自动上传吗?','提示',MB_OKCANCEL);
if ms1=0 then exit;
if ms1=idok then with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from zk_kscj where kssj1 between cast(GetDate()-0.5 as int) and GetDate() and (zzksjg=''合格'') order by kssj1');
open;
end; with adoquery2 do
begin
close;
sql.Clear;
sql.add('select * from sxztd_zk_kscj where zkzh=:a');
Open;
adoquery2.parameters.ParamByName('a').Value:=adoquery1.FieldByName('zkzmbh').AsString;
end;
if adoquery2.RecordCount>0 then
begin
application.MessageBox('该考生成绩已经上传!请勿重复上传','提示',64);
i:=i+1;
exit;
end ;
if adoquery2.RecordCount=0 then
begin
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('insert into sxztd_zk_kscj(xm,xb,zkzh) values(:b,:c,:a)');
open;
adoquery2.parameters.ParamByName('b').Value := adoquery1.FieldByName('xm').AsString;
edit1.Text:=adoquery1.FieldByName('xm').AsString ; adoquery2.parameters.ParamByName('c').Value :=adoquery1.FieldByName('xb').AsString;
edit2.Text:=adoquery1.FieldByName('xb').AsString; adoquery2.parameters.ParamByName('a').Value :=adoquery1.FieldByName('zkzmbh').AsString;
edit3.Text:=adoquery1.FieldByName('zkzmbh').AsString; adoquery1.ExecSQL;
adoquery2.ExecSQL;
end;
j:=j+1;
adoquery2.Next;
end;
end;
end;
var ms,ms1,i,j:integer;
begin
ms1:=0;
if RadioButton1.Checked then
begin
ms1:=MessageBox(0,'你确定要自动上传吗?','提示',MB_OKCANCEL);
if ms1=0 then exit;
if ms1=idok then with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from zk_kscj where kssj1 between cast(GetDate()-0.5 as int) and GetDate() and (zzksjg=''合格'') order by kssj1');
open;
end; with adoquery2 do
begin
close;
sql.Clear;
sql.add('select * from sxztd_zk_kscj where zkzh=:a');
Open;
adoquery2.parameters.ParamByName('a').Value:=adoquery1.FieldByName('zkzmbh').AsString;
end;
if adoquery2.RecordCount>0 then
begin
application.MessageBox('该考生成绩已经上传!请勿重复上传','提示',64);
i:=i+1;
exit;
end ;
if adoquery2.RecordCount=0 then
begin
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('insert into sxztd_zk_kscj(xm,xb,zkzh) values(:b,:c,:a)');
open;
adoquery2.parameters.ParamByName('b').Value := adoquery1.FieldByName('xm').AsString;
edit1.Text:=adoquery1.FieldByName('xm').AsString ; adoquery2.parameters.ParamByName('c').Value :=adoquery1.FieldByName('xb').AsString;
edit2.Text:=adoquery1.FieldByName('xb').AsString; adoquery2.parameters.ParamByName('a').Value :=adoquery1.FieldByName('zkzmbh').AsString;
edit3.Text:=adoquery1.FieldByName('zkzmbh').AsString; adoquery1.ExecSQL;
adoquery2.ExecSQL;
end;
j:=j+1;
adoquery2.Next;
end;
end;
end;
Select使用Open;Update或Insert Into使用ExecSQL而不是Open,自己查一下有几处adoquery2.Next;没有循环,何況是Insert Into语句,没啥用,还会报错
很多代码多余,自己试着写简洁一点,比如ms,ms1,i,j这4个变量都可以省去