对 SQLSERVER 表 EDIT 时出现的奇怪的问题(50分)

  • 主题发起人 主题发起人 孔枫
  • 开始时间 开始时间

孔枫

Unregistered / Unconfirmed
GUEST, unregistred user!
前台连接SQLSERVER7,当对表执行EDIT 操作的时候,提示出错信息:
"Multiple records found,but only one was expected."
WHY?
 
你说的前台是?
 
就是DELPHI嘛
 
你修改是用ttable还是tuery?
如果是tquery,那么sql语句一定返回了重复的记录,
导致delphi无法识别需要修改的记录。
把你的SQL贴出来看看。
 
frmAllDatas.W3LogData.First;
for i:=1 to frmAllDatas.W3LogData.RecordCountdo
begin
if (ChinaIP.IsChinaIP(frmAllDatas.W3LogData.FieldByName('DestHostIP').AsString)) then
begin
frmAllDatas.W3LogData.Edit;
isChinaIp是孔风自己写的函数
我觉得还是用query的好
 
关键是表是否有完全重复的记录,
如果有主码,自然好办,没有的话,
必须由程序保证了。
在"有完全重复的记录"的情况下,
一切修改手段都是要失效的。
 
>是否有完全重复的记录
没有
因为数据库的结构很简单,只有一个表.也没主键.
 
这个程序对 PARADOX 操作没错.
 
没有定义主键啦!定义一个KEY,如果用Query,一定在查询返回字段中包含此KEY!
如果找不出KEY,就做个IDENTIFY字段好了
 
孔枫:你是guanshui里的孔枫?
 
哎呀
CJ
你干吗呀
查户口啊
天下就一个孔枫,那就是天底下最最最最****的我啊!
 
faint
今晚没法试,明天吧.
BTW:
>谁知道CJ的OICQ号码?
知己啊,你的记性和我一样哦.我好几次搞昏了MM的电话,被骂过N回.:)
记得通过我的验证.
 
连FAINT都会啊?厉害,果然学的快哦……
N 个 MM啊,厉害厉害,俺也好好学学先
 
我遇见过,就是因为表没有主码的原因。对于大型数据库表,最好每个表都有
一个主码。
 
解决解决
谢谢大家的捧场
确实是因为没有主键的原因:)
发分。
 
多人接受答案了。
 
后退
顶部