ODAC 与Oracle的问题
最近使用ODAC做Oracle的项目,发现了一些问题,老时解决不了。如下:
1、我用伪三层方式在客户端处理一些数据
TcxGrid ---> TDataSource
TDataSource ---> TClientDataSet
TClientDataSet ---> TOraProvider
TOraProvider ---> TOraStoredProc
TOraStoredProc执行存储过程SP_A返回数据集。
在TClientDataSet进行修改数据。修改后本地Post没什么问题。但是将结果保存至远程数据库,调用ApplyUpdates(0)时。在IDE调试模式下报Unable to find record. No key specified,但是脱离IDE运行的话,不报任何错,只是修改的结果未保存至远程库中。存储过程SP_A只对单表进行查询,并且查询的单表也设置了主键。查询返回的结果集没有二进制的数据,如Blob等。只是一些varchar2,integer数据。
TOraProvider的UpdateMode属性为默认的upWhereAll。尚不知道何原因,等待高手指点。
2、TOraQuery的FetchRows问题
很奇怪的问题,发现不管你将FetchRows设成多少,每次只返回它默认的25条记录,但是
TClientDataSet的PacketRecords设成0时,返回了数据集,但是TcxGrid中只显示一秒不到,就自动马上消失。于是我联想至ODAC是不是限制了返回的数据笔数(当然针对D盘或者未注册用户,我也不知道我的是否被破解了的,还是未注册的,我是盒子上Down的odac_v610src,如果是这个问题,不知道哪位人是否可以帮忙整个注册码来!呵呵,感谢)还是一些属性我没设好。只是默认的Fetchrow=25
FetchAll=false。
TOraStoredProc等也存在此问题。
使用当中发现ODAC真的很方便,挺好的。目前就发现以上几点,请牛人指点一下。