>如果,你遇到这种情况,如何处理[讨论]<

heavenmusic 2003-08-11 05:15:23
在数据库表中appe一条记录,会出现索引关键字不唯一的提示,如何解决?

(通常情况: 在一个表里面,设置一个主索引.----然后,在VFP环境里,运行添加记录.但你没有输入内容.----之后,我们退出.------当第2次运行表单里,点添加----就是如上提示)
...全文
65 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavenmusic 2003-09-02
  • 打赏
  • 举报
回复
我已经知道,如何做了! 谢谢!! 我现在已经用...fj_jiangqi(强盗) ..作法,挺不错的.

:) 感谢各位回答....结了.........
xiolig 2003-08-19
  • 打赏
  • 举报
回复
在此,先向 Heavenmusic 诚挚地道一声谢!
fj_jiangqi 对他自己的观点另有详述,大家不必在此争论。
一、解决由于空白记录导致的关键字重复问题:
对单个记录的添加,用Insert-SQL语句代替APPEND BLANK。
二、解决用户后悔的问题:
方法一:用缓冲和事务处理,后悔时回滚即可,这应该是大势所趋。
方法二:不绑定字段,不用GRID录入数据,直到用户确认后才写入。
dfwxj 2003-08-11
  • 打赏
  • 举报
回复
fj_jiangqi(强盗)

没有一个表用不到pack的,你不用pack是短期行为,实际应用中很多的记录需要pack,如果记录号能作为唯一关健值,还要唯一索引和排序干什么?系统使用中允许吃后悔药,但不可走回头路。唯一关健字可以被删除,但不可以被改变或复用。
老猿的书房 2003-08-11
  • 打赏
  • 举报
回复
RE: fj_jiangqi(强盗)
http://expert.csdn.net/Expert/topic/2135/2135327.xml?temp=.6877252
多谢
fj_jiangqi 2003-08-11
  • 打赏
  • 举报
回复
记录删除必会被下一次追加使用,我是这样处理的,所以不需要进行pack,也不可能会有太多被删除的记录。
pack需要独占打开,一次以后开发的都多用户操作,不允许独占,所以就这样了。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
老猿的书房 2003-08-11
  • 打赏
  • 举报
回复
FishOfThink(旅者) ,请问,虽然使用者点“新增”,但他后悔,不想新增。。如果这样的话,UNLOADQUERY,里面,写什么比较好?

*********************************************************
我处理这个的方法不是很好,我会另设一个数组,保存用户新增或修改的关键键值(如果是修改,原值也要保存),用户后悔,将原值设回即可

RE: fj_jiangqi(强盗)
我有的表会遇到几万条记录整删整加的情况,这时还可以不用PACK么?如果可以,怎么才能做到呢?
fj_jiangqi 2003-08-11
  • 打赏
  • 举报
回复
记录号除了用pack它永远是不变的,所以我有史以来都用它做唯一关键值。
如:A1表以记录号与A2表的A1ID字段对应
A2表追加时,replace A1ID with recno('A1')
建索引时可能这样index on bintoc(A1ID) to tag A1ID
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
heavenmusic 2003-08-11
  • 打赏
  • 举报
回复
fj_jiangqi(强盗) 能解释一下,你的作法吗?你如何现实的。。。。写一段简单的代码,给我看一下,可以吗?谢谢!
heavenmusic 2003-08-11
  • 打赏
  • 举报
回复
FishOfThink(旅者) ,请问,虽然使用者点“新增”,但他后悔,不想新增。。如果这样的话,UNLOADQUERY,里面,写什么比较好?

fj_jiangqi 2003-08-11
  • 打赏
  • 举报
回复
在vfp中我不使用关健字段,直接引用记录号。也导致我所有的vfp程序中没有pack这个命令。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
dfwxj 2003-08-11
  • 打赏
  • 举报
回复
在设计表结构时选择“允许空值”
老猿的书房 2003-08-11
  • 打赏
  • 举报
回复
在用户输入后,或是数据保存后,立刻检查主索引键值,发现为空,则提示并要求重新输入,退出时再检查一次,可以在UNLOADQUERY事件里写

2,722

社区成员

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

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