我进入修改模式 with adoTable1 do
Try
Edit;
FieldByName('编号').AsString:=Edit1.Text;
Post;
adoTable1.refresh;
ShowMessage('数据已正确保存!!');
except
Cancel;
ShowMessage('有重复的通知书编号!!');
edit1.Text:='';
edit1.setfocus;
end; 我的编号是主键我 怎么才能把这行给覆盖 而不出现有重复的编号
Try
Edit;
FieldByName('编号').AsString:=Edit1.Text;
Post;
adoTable1.refresh;
ShowMessage('数据已正确保存!!');
except
Cancel;
ShowMessage('有重复的通知书编号!!');
edit1.Text:='';
edit1.setfocus;
end; 我的编号是主键我 怎么才能把这行给覆盖 而不出现有重复的编号
While not ADOTable1.eof do
if ADOTable1.FieldByName('编号').AsString=Edit1.Text then
begin
ShowMessage('有重复的通知书编号!!');
break;
end
else
ADOTable1.next;
end;
直接使用ADOTable1.FindKey([Edit1.Text])搜索不就行了?
ADOQUERY1.SQL.CLEAR;
ADOQUERY1.SQL.ADD('SELECT * FROM TABLE1 WHERE 编号='+Edit1.Text);
ADOQUERY1.OPEN;
IF ADOQUERY1.RECORDCOUNT=1 THEN
showmessage('编号重复')
else
begin
Edit;
FieldByName('编号').AsString:=Edit1.Text;
Post;
adoTable1.refresh;
ShowMessage('数据已正确保存!!');end;
保存之前可以判断如果插入状态,则用另一Query来查询看是否有重复记录,
否则如果是修改状态,而且oldkey<>newkey时利用Query来根据newkey判断是否已有记录。
得需要索引的,,
用adoquery吧