W wwwwww Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #1 使用ADO删除记录时出现上述问题, 我已经安装了DELPHI升级1和ADO升级2,应该不是他们的BUG. 到底什么意思?怎样解决?
Z zjc Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #2 那是因为没有定义主键,就可能有重复的记录都符合条件。 你可以加一列自动编号的主键,如果不想显示再隐藏它
W wwwwww Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #3 我根本就没想用主键,太麻烦. 我是在DBGRID中删除当前记录的,我发觉有时对,有时错, 似乎删除最后一条后就错了, 我感觉是不是删除一条后当前记录指针有问题?
D delphiwolf Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #4 不用主键?!活该!没治! 是因为有两条完全相同的记录!!!
A antdown Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #5 把你能保证不重复的列设成key,否则的话只有加自动编号字段。 而且是不想加也得加
P Pipi. Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #6 一定要用主键,才能唯一确定一个纪录。 如果没有主键,有些数据库有一些特性可以利用, 比如用oracle,你可以 select my_tbl.*, rowid from my_tbl rowid就可以唯一确定一行(不严格的说,因为要除去cluster表) interbase也有类似功能, 其他数据库我就不清楚了。
一定要用主键,才能唯一确定一个纪录。 如果没有主键,有些数据库有一些特性可以利用, 比如用oracle,你可以 select my_tbl.*, rowid from my_tbl rowid就可以唯一确定一行(不严格的说,因为要除去cluster表) interbase也有类似功能, 其他数据库我就不清楚了。
Y yangkee Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-07 #7 你怕麻烦不要主键只怕会带来更多的麻烦,还是乖乖地加上主键吧
W wwwwww Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-08 #9 谢谢各位,主键已经加上了,解决了,偷懒真不行. 随便加上一个ID字段,INT 型,自动增1,OK. 不过删除中间的会出现漏洞,而且继续按最大的号递增, 这个问题,以前似乎有人提过, 不知能否理顺编号,并且将来递增时也按理顺后的次序. 不然看着别扭. 我要分赃了,谁再能解决这个问题,多分点.
谢谢各位,主键已经加上了,解决了,偷懒真不行. 随便加上一个ID字段,INT 型,自动增1,OK. 不过删除中间的会出现漏洞,而且继续按最大的号递增, 这个问题,以前似乎有人提过, 不知能否理顺编号,并且将来递增时也按理顺后的次序. 不然看着别扭. 我要分赃了,谁再能解决这个问题,多分点.
Y yangkee Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-09 #10 没法,数据库才不会保证中间没有漏洞呢,而且肯定是继续按最大的号递增,它只保证唯一性就可以了 除非你自己定义一个字段然后用触发器来定义其生成规则