怎样保证为主索引字段添加的记录值不重复?

sunjian514 2002-12-05 08:02:40
我知道可以用“触发器”但是怎么写?我seek查询的方法好像不管用。有没有好的方法?
在表单中编程。当然我试过用事务处理,但是处理起来太繁琐,好像还不太稳定。
建表缓冲就不要优先考虑了,命令又长设来设去太烦人。
求教各位高人。有何高招?
...全文
206 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunjian514 2002-12-22
  • 打赏
  • 举报
回复
当然!我这里主要是对自己份内的工作进行信息化,VFP只是刚刚学会,我从事的工作是建筑工程项目计划统计计价等,对大量的数据重复计算深恶痛绝,所以才把数据库拿来帮忙,其实99年用FoxBase+考过二级后有两年没有用了命令都快忘光了.很高兴和你共同提高.我的邮箱sunjian514@163.net
xiolig 2002-12-20
  • 打赏
  • 举报
回复
其实我只是对FoxBase+了解得较多而已,对VFP知道得很少,触发器、缓冲及网络编程才刚刚开始接触,多多交流吧。不过,我认为一些本为网络编程准备的命令也未尝不可用于单用户,也为软件的升级留下方便。
sunjian514 2002-12-20
  • 打赏
  • 举报
回复
这种缓冲的解决办法还可以,但是我以前用记录缓冲的办法比较麻烦,而且我喜欢在记录输入时留一个判断的余地一般设两层事物处理一层在数据环境开始时第二层在记录增加、删除、更改时开始,这样就可以在这两种情况下判断是否保存。我总以为缓冲是在多用户情况下使用的锁定,而我编的程序一般都是自产自销,不用支持网络和多用户请问在此情况下要完成我的目标如何处理。
还有触发器问题,我没怎么用过。以前用messagebox()试过几次基本了解了。但是不知道它有什么特殊要求。一般出现主索引记录重复时系统会自动提出警告,但是我不想用它的提示,可它的提示总是出现在我的触发程序前,怎么解决?
最后感谢二位的帮助,恳请继续支持。恭喜凌霄升级。
xiolig 2002-12-17
  • 打赏
  • 举报
回复
我倒更建议你采用MagNetMoon的意见。
INDEXSEEK:可以不改变记录指针,好处不言而喻。
INSERT(SQL):直接增加非空记录。(参考MSDN)

magnetmoon 2002-12-13
  • 打赏
  • 举报
回复
最好用缓冲,如果只有主关键字限制,
只要tableupdate()返回.f.,
一般就是主关键字重复了,
不必再用seek()查找判断是否重复。

sunjian514 2002-12-13
  • 打赏
  • 举报
回复
SEEK与INDEXSEEK好象作用是一样的,由什么先进之处,麻烦你解释一下。你好象说到点子上了,我是从FOXBASE学过来的,对SQL命令还不太熟悉,用的话一般都是直接用向导建视图,我是用APPEND BLANK + RELACE做的很麻烦,问题就是与默认值冲突,SEEK总是检查到我新加的空记录。看来我要多学学SQL命令,不建议交个朋友吧。我们互相切磋切磋,我会多给你几分的。
xiolig 2002-12-06
  • 打赏
  • 举报
回复
从界面友好性出发,我认为还是采用 SEEK(最好改为 INDEXSEEK)在修改前查询比较妥当,而且追加记录时最好用 INSERT - SQL command 代替 APPEND BLANK + REPLACE 命令组,避免出现空记录。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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