if edit1.Text<>'' then begin try adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select kczh from kcgl..yhxx where kczh='+''''+edit1.text+''''); adoquery1.Open; if adoquery1.RecordCount=0 then begin adoquery1.InsertRecord([edit1.text,edit2.text,edit3.text,edit4.text,edit5.text,edit6.text,memo1.text]); edit1.Clear; edit2.Clear; edit3.Clear; edit4.Clear; edit5.Clear; edit6.Clear; memo1.Clear; end else showmessage('客存证号重复,请重新填写'); edit1.Clear; edit1.SetFocus except showmessage('error'); end; end;
dbgrid1.datasource := nil // 断开DBGrid与ADOQuery,这样在下面用ADOQuery时dbgrid不会改变try if edit1.Text<>'' then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select kczh from kcgl..yhxx where kczh='+''''+edit1.text+''''); adoquery1.Open; if adoquery1.RecordCount=0 then begin adoquery1.InsertRecord([edit1.text,edit2.text,edit3.text,edit4.text,edit5.text,edit6.text,memo1.text]); edit1.Clear; edit2.Clear; edit3.Clear; edit4.Clear; edit5.Clear; edit6.Clear; memo1.Clear; end else showmessage('客存证号重复,请重新填写'); edit1.Clear; edit1.SetFocus; except // 发生错误是这里面的代码,否则不执行 showmessage('发生错误'); end; // 再用adoquery1连接dbgrid; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from kcgl); adoquery1.Open; dbgrid.datasource := dataset;
kczh='+chr(39)+edit1.text+chr(39)
不以用联着dbgrid的那个查。要容错的话加上try...except...end就可以了。
你要做的事
except
错误处理
end;
begin
try
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select kczh from kcgl..yhxx where kczh='+''''+edit1.text+'''');
adoquery1.Open;
if adoquery1.RecordCount=0 then
begin
adoquery1.InsertRecord([edit1.text,edit2.text,edit3.text,edit4.text,edit5.text,edit6.text,memo1.text]);
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit6.Clear;
memo1.Clear;
end
else
showmessage('客存证号重复,请重新填写');
edit1.Clear;
edit1.SetFocus
except
showmessage('error');
end;
end;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select kczh from kcgl..yhxx where kczh='+''''+edit1.text+'''');
adoquery1.Open;
if adoquery1.RecordCount=0 then
begin
adoquery1.InsertRecord([edit1.text,edit2.text,edit3.text,edit4.text,edit5.text,edit6.text,memo1.text]);
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit6.Clear;
memo1.Clear;
end
else
showmessage('客存证号重复,请重新填写');
edit1.Clear;
edit1.SetFocus;
except
// 发生错误是这里面的代码,否则不执行
showmessage('发生错误');
end; // 再用adoquery1连接dbgrid;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from kcgl);
adoquery1.Open;
dbgrid.datasource := dataset;