急问:recordset集中明明有记录,可是一删就出现异常??(50分)

S

snowbow

Unregistered / Unconfirmed
GUEST, unregistred user!
我在vc下用ADO方式对Interbase数据库操作。删除部分代码如下:
当注释上m_pRecordset2->Delete(adAffectCurrent);时,i跳出循环时i为8,与数据库中的
符合条件记录的条数,但是解除注释,运行到此句就出异常。说没找到要删除的行。
我不知道有什么问题,我用同样方法对同一个数据库中其他的表操作一点问题也没有。
while(!m_pRecordset2->adoEOF){
i++;
m_pRecordset2->Delete(adAffectCurrent);
m_pRecordset2->MoveNext();
}
我在线等,请大侠们帮帮忙吧!!!
 
如果Delete了就不用MoveNext了,记录自动上移
 
我以前用的时候删除全表时好象是m_pRecordset2->Delete();
没有加参数
当时是执行成功了!
 
还有一种可能就是你的数据库里有重复记录!
 
ysai:问题是一个也删不掉,删就出数据库异常了。
yueer:没有重复记录,再说有重复记录也不能填进去呀。
请大家再帮我想想!!!
 
VC我不懂,但我觉得你如果把i的值从最大到0这样删除,也许就对了。
因为,一般释放对象都必须这么作。。。
 
还是先试试 ysai 的方法,应该没错
 
注意,你是不是用了字表呢,是不是字表有记录和它关联呢。
 
谢谢大家,我是一开始删就出错。所以还没到MoveNext那步呢!我的表中有主键,
还有自增字段,还有一个触发器,但是只是在填入记录时使自增变量加一。
另外,我有同样结构的其他三个表,用以上方法删都没问题,所以觉得这个怎么也不能删
很奇怪。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
回复
0
查看
1K
天地弦
顶部