当前位置:主页>仓库管理软件> 列表

数据集如何实现本地缓存,并在有数据更新的时候能在本地程序的 找财务软件教程视频

财务软件版1楼: 说明:
因为有部分数据是要求在服务器端生成返回的,而如果直接采用ADO,不能进行接收服务器端生成的数据,所以采用存储过程。
问题一、采用存储过程后,就希望当进行数据更新时,程序的实现在本地的数据更新
问题二、采用数据集控件怎么实现本地缓存,而不是每次都要OPEN

谢谢!

2楼: 使用ado数据集组件的UpdateBatch方法。
不过你要先把它的属性设置成本地缓存模式。
CursorType设置KeySet或Static
Locktype设置BatchOptimistic
若执行Sql命令必须是Select
最好把CursorLocation设成clUserClient 如财务软件教程视频

3楼: 不是很明白,一般如果不想POST后马上保存数据回后台的话,可用
adoQuery+DataProvider+ClientDataSet+DataSource的方式,这样Append,Delete,Edit后数据是缓存在本地的ClientDataSet中的,要真正保存数据时,用ApplyUpdates才可能。

4楼: 对于数据的更新(包含新增、修改、删除)操作,我是写在存储过程中实现的
这样,其实我的要求就是对数据进行更新操作后,在本地的数据集中进行相应的操作,而这些操作是与数据库断开的,实际上相当于本地缓存



这样做,是因为有相当部分数据是服务器端存储过程生成的。

TO SmallGhost:
我已经按照你上面的提示试过了,我采用的方式是:
append;
....
updatebatch;
的方式,还是直接操作数据库的,其它要求的属性我都相应设置了,可不知道那里错了,该如何updatebatch才是对的
因为以前很少用数据集控件,请多多帮忙...

5楼: 怎么没人帮忙呢?
其实这个问题跟采用execsql来更新数据的问题是一样的,两者都是通过sql语句来进行数据更新,但本地数据缓存改如何更新呢?

insert/append,post的方式是不能达到服务器端的数据生成的

6楼: 你把来龙去脉讲清楚啊,我还是没理解,你本地的数据是怎么得到的,又是怎样更改数据的
在什么情况下需要用存储过程更新数据,更新的数据又是怎么来的。。。

财务软件版7楼: 本地数据也是通过adoquery查询回来的

说起来我的目的其实很简单:数据更新(insert\update\delete)由sql语句或存储过程完成,客户端的数据集如何在数据更新成功后,完成数据的更新变化,不是每一次都要open吧?