用BDE不完全支持的数据库,调用ApplyUpdates不能提交,咋办?(100分)

  • 主题发起人 主题发起人 hsj
  • 开始时间 开始时间
H

hsj

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库用Oracle,调用TClientDataset.ApplyUpdates方法,结果一条记录也没提交到数据库中,因为我用到事务,所以不能由自己直接写sql语句。有没有其它办法?请高手指教。
 
refresh可以吗?
 
liuchuanbo:
refresh是没有用的。这是在客户端用TClientDataset处理本地数据,并提交
到数据服务器。
 
写到存储过程里,如果每次改变存储过程,
用参数传递变量.
 
定是事务写的有问题,有没有commit?
 
谢谢大家,但是问题没有解决。这里我想问一下,在ODBC中建立DSN应该用
Oracel自己的驱动程序呢还是微软的确驱动程序?
 
会不会不是ORACEL的原因,你确信你的appserver没有问题吗?
 
用Oracel自己的驱动程序
 
TClientDataset.ApplyUpdates(-1)或TClientDataset.ApplyUpdates(0)呢
 
怎么会呢?我现在就是用的oracle,一点问题都没有
 
有用CommitUpdates语句么?
 
这个问题跟你写的服务器程序有很大关系。提交可以放在服务器端,
下面是一个自己写的服务器端的提交的函数,可以解决问题:
try
DataSetProvider.ApplyUpdates(Delta,MaxError,ErrorCount);
SetComplete;
except
SetAbort;
end;

 
谢谢大家的热心帮助,但我的问题仍没解决,adminis所说的是对的,但是通过额外的
编程来获得.这个问题实际是无关三层体系.我在两层体系中,用Table作为数据修改
的数据集,可以修改,但是就不能用TQuery,因它返回的是只读数据集.有一点可能我
的原因,我用的是Oracle8.如果有那位好心的人能给我进一步的指点,本人不胜感激.
 
请查看联接数据库的DATABASE的提交模式。
 
我认为与Oracle没有关系,默认情况下用Query确实返回只读数据集,即使对于非常
复杂的多表查询,该问题也很容易解决,办法就是多写几行代码而不是依赖于Delphi
的实现机制,看一看Update的SQL如何写吧!
 
多人接受答案了。
 
请问这个问题最后是如何解决的?
 
我想知道这个问题最终是如何解决的.
 
后退
顶部