MIDAS高手请进!急!!!!!!!!!!!!! (200分)

  • 主题发起人 主题发起人 fpsky
  • 开始时间 开始时间
F

fpsky

Unregistered / Unconfirmed
GUEST, unregistred user!
DCOM+BDE+ORACLE8。0。5的问题,请赐教!
ClientDataSet.Delete;
ClientDataSet.ApplyUpdates(-1);
连接的是ORACLE8。0。5
为什么有时候能删除数据,有时删除后再进入软件,数据仍然未被删除
还有
ClientDataSet.Edit;
ClientDataSet.ApplyUpdates(-1);
如果出现上面的不能删除的问题后,同样这样的操作也出错,为什么,
数据据没有主键值,也没有NO NULL,总是很随机的出现上述问题,但大多数据
的操作是正确的。
 
-1是不是没有错误数限制?
有时候能,有时候不能?!怪 Dcom的问题?
 
你可以试试doa构件,它直接用oci连接oracle ,通过rowid编辑数据,感觉比bde方便
 
在ClientDataSet1ReconcileError( )中分析一下异常代码.
 
没有正常提交!
改用ADO如何?
 
》》数据据没有主键值,也没有NO NULL,
有没有其他表的外键? 外键有时候也会出现问题的!
 
to:jrq
没其它外键,而且大多数情况下是正确的,只有个别记录操作有误,但是我还没有找到原
因。
 
使用类似
ClientDataSet.Delete;//edit
ClientDataSet.ApplyUpdates(-1);
的做法,必须保证整个表中没有两条同样的记录,否则当你正好修改或删除的记录相同
,就回出错。
由于你没有一个唯一的索引,因此两条同样的记录可以加入,但不能修改或删除。
除非使用update/delete sql语句
 
楼上说的有理~
是不是因为没有主键而造成了在库里有相同的记录?
检查一下吧!
 
>>>>在ClientDataSet1ReconcileError( )中分析一下异常代码.
 
错误信息是什么?
另外,如果是用别的会话看数据,你这个修改之后要commit才看得见改变的
 
to: pipi
但是大多记录操作是正确的啊,谢谢!
 
因为你用了ClientDataSet.ApplyUpdates(-1),它的意思是允许任何错误,因此当正确修改时,
能够正确提交,而一有错误就自动回滚
你改用ClientDataSet.ApplyUpdates0)再加上ClientDataSet1ReconcileError,应该可以;
 
将ClientDataSet.ApplyUpdates(-1);改为ClientDataSet.ApplyUpdates(0);试一下,看看有什么错误信息!
 
to:
zbsfg and t123
谢谢你们的回答,我试过了还是不行,不知与ORACLE有没有关系呢?


 
怎么没人回答了吗?问题还没有解决,分不够,再加200分
 
这个问题可能有二个:
1.数据冲突,你正在改的数据,别人已经改过了
2.数据修改后,不符合数据库的规定,与数据库设计有冲突,如a>5,你却输入2
 
这个问题我遇见过,如果应用服务器用的是tquery,则需要加入一个tupdatesql控件,
然后把tquery的updateobject属性指向它,在双击tupdatesql控件打开其sql属性,然后点击
generate sql按钮,然后点击ok,重新编译运行,一切都搞定了
 
我也遇到你同样的问题,但是我贴上这个问题好久了,到现在都没有得一个好的解决办法
 
后退
顶部