再问防止字段值重复的问题

lifanxi 2003-07-08 07:56:22
如果不是通过数据库上设置约束或主键的话,如何才能保证插到某个表中的记录的某个字段值在表中不重复呢?
想到的一个办法是在BeforePost中去数据库查一下有没有重复的记录,但这个方法有个问题,就是如果是修改记录的话就不灵了,它必然会抱怨说存在重复的记录。
究竟应该如何解决呢?
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifanxi 2003-07-08
  • 打赏
  • 举报
回复
我个人觉得dickeybird888(于伟刚)的方法还是可行的,前提是数据表有一个绝对可靠的关键字段。
things(平)的方法确实不适用于数据绑定控件。
还有更好的方法吗?
suton 2003-07-08
  • 打赏
  • 举报
回复
To things(平):
老兄的這種方法在EDT沒有和數據庫綁定的時候是可以的,但是用到DBEDIT就不行了.
daniel2008 2003-07-08
  • 打赏
  • 举报
回复
友情up
lifanxi 2003-07-08
  • 打赏
  • 举报
回复
修改不一样呀!
比如有个表Table1,里面ID,XM两个字段,其中ID字段不能重复.有两条记录1,AAA和2,BBB.
如果我修改2,BBB记录,如果是改成1,BBB或3,BBB自然不会出问题,但如果用户不小心把2改了一下,又改回为2,这时一提交就会出问题了,程序会抱怨说ID为2的记录已经存在,不能提交.
things 2003-07-08
  • 打赏
  • 举报
回复

if Edtid.text <> Query1.FieldByName('Id').Asstring then
if locate('id', edtid.text, []) then
showmessage('数据重复');
dickeybird888 2003-07-08
  • 打赏
  • 举报
回复
修改的时候你可以通过关键字查询当前的要修改记录字段是否与数据库中的重复,并且是否与当前记录重复
hammer_shi 2003-07-08
  • 打赏
  • 举报
回复
修改一样检查呀!

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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