是delphi的BUG还是ODBC的问题?(100分)

D

D&D

Unregistered / Unconfirmed
GUEST, unregistred user!

本人通过ODBC连接到SQL SERVER的一张表上,出现下列情况
如果此表中有两条记录完全相同是,对这两条记录中的任何
一条进行删除或修改时都会出现EBDERRO报告有两条相同的记
录,无法对记录进行操作,我用的是DELPHI 4.0和SQL SERVER6.5
另:我在通过ODBC连接ACCESS数据库也是相同的结果。请教各位
大侠有无解决办法,还是我的配置方法不对。
 
我遇到过,在InterBase,主要原因是没有主码,
建一个就没事了!
 
这个问题不是工具的问题,而是你的数据库的设计中,没有体会到主键的重要性,
我搞过oracle,体验深刻,希望你在任何一个表中都设primary key,哪怕是所有的
字段都加上,不然你以后的数据维护会有麻烦。。。
 
或者使用TQuery, 在SQL语句里写:

set rowcount=1;
delete from xxx where name=**;
go

这样就保证只对一条纪录操作.
不过,最好建个key
 
建立个KEY不就行了?可以用自增字段
 
可以增加一TIMESTAMP列
 
谢谢大家
 
应当给表建一个主键(Primary Key)
 
bde中无论是ODBC,还是SQL Link ,连接任何SQL数据库都有此问题,当您的表没有唯一性时,如果提交修改记录,bde检查提交的SQL是否只影响到1条记录,如果不是,则提示出错.
解决办法上面各位都说了,就是要有唯一索引.另外建立唯一索引也减少多用户
操作时的死锁问题.
 
多人接受答案了。
 
顶部