快来快来帮帮忙!

yhq2002 2003-02-23 11:41:58
请问怎么样能使程序不能再一个表中输入两那条同样的记录?
1,如果是设置主健,我用的是access,该怎么样作
2。错误处理该怎样处理?
3。我不想逐条比较表中每个纪录,哪需要比较很多记录和很多字段
...全文
25 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
panyong2002 2003-03-06
  • 打赏
  • 举报
回复
onposterror中试试

var adoerrors: errors;
adoerror: error;
errorno:integer;
begin
errorno:=0;
adoerrors:=adoCnt.Errors;
adoerror:=adoerrors.Item[0];
errorno:=adoerror.number;
showmessage(inttostr(errorno)) ;
case errorno of
-2147467259 :
begin
application.MessageBox('编码不能重复!','错误',mb_ok);
abort;
end;

else
begin
application.MessageBox('保存失败!','错误',mb_ok);
abort;
end;
end; //end case
Wally_wu 2003-03-06
  • 打赏
  • 举报
回复

try
……
//插入的操作
except
On EDatabaseError do do
begin
showmessage(‘The inserted record is exist’);
Dataset1.Cancel;
End;
end;

如果是想在onposterror的话,可以这样写:
procedure TForm1.ADOTable1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
showmessage(E.Message);
DataSet.Cancel;
Action := daFail;
end;

zouliyuan 2003-02-24
  • 打赏
  • 举报
回复
up
yhq2002 2003-02-24
  • 打赏
  • 举报
回复
我想在错误处理里捕获这个错误,用onposterror事件来做不知怎么做,怎么判断纪录重复了?
My_first 2003-02-23
  • 打赏
  • 举报
回复
1.在access里创建表的时候就可以设置一个主键。
2.通过
try
do...
except
showmessage('error');
end;

3.没有好的办法。

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧