关于网友提出的“ 在线求助!?”问题疑问,本网通过在网上对“ 在线求助!?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 在线求助!?描述:
我在使用 Query 组件时遇到一个这样的问题,当我第一次激发这个事件时没有任何问题,但是当我不关闭窗口也不改变窗口中组件的内容时却出现类外:“不能在表中插入重复键”。代码如下:
procedure TCzy_add.c_addClick(Sender: TObject);
begin
//添加代码验证数据合法性
query1.Active:=true;
with query1 do
begin
query1.Close;
sql.Clear;
query1.SQL.Add('select * from sd_user.sd_czy where czdm=:nam');
params[0].AsString:=edit1.Text;
prepare;
query1.Open;
if not eof then //很明显第二次这个判断有些问题
begin
showmessage('对不起,该操作代码已经存在,不能重复创建!');
end
else
begin
query1.Close;
sql.Clear;
sql.Add('insert into sd_user.sd_czy (czdm,mima,czmc,ziwe,mmqx)'+
'values (:cm,:mm,:cc,:zw,:mx)');
params[0].AsString:=edit1.Text;
params[1].AsString:=edit2.Text;
params[2].AsString:=edit3.Text;
params[3].AsString:=edit4.Text;
params[4].AsString:=edit5.Text;
prepare;
query1.ExecSQL;
showmessage('您已成功地添加了该操作员!');
//query1.CleanupInstance;
end;
end;
end;