说明:
因为有部分数据是要求在服务器端生成返回的,而如果直接采用ADO,不能进行接收服务器端生成的数据,所以采用存储过程。
问题一、采用存储过程后,就希望当进行数据更新时,程序的实现在本地的数据更新
问题二、采用数据集控件怎么实现本地缓存,而不是每次都要OPEN 谢谢!
因为有部分数据是要求在服务器端生成返回的,而如果直接采用ADO,不能进行接收服务器端生成的数据,所以采用存储过程。
问题一、采用存储过程后,就希望当进行数据更新时,程序的实现在本地的数据更新
问题二、采用数据集控件怎么实现本地缓存,而不是每次都要OPEN 谢谢!
在两层模式下,ADO组件需要把
ADOQuery1.LockType:=ltBatchOptimistic;
ADOQuery1.CacheSize:=1000;
ADOQuery1.CursorLocation:=ctStatic;开启缓存,这时内容存在内存中
如果想保存在硬盘文件需要用
ADOQuery1.LoadFromFile();
ADOQuery1.SaveToFile();
来处理文件
我的操作实际上是这样,对于数据的更新(包含新增、修改、删除)操作,是通过存储过程中实现的。
这样,对数据进行更新操作后,在本地的数据集中进行相应的操作,而这些操作是与数据库断开的,实际上相当于本地缓存
即:数据更新都是在服务器端完成了
现在不知道怎么处理或者说处理不当的是:后台数据已经更新了,前端的网格中的数据显示处理,比方说调用存储过程已经新增了一条数据并成功,可在前端怎么加上新增的数据显示(数据都有)?
其实这个问题跟采用execsql来更新数据的问题是一样的,两者都是通过sql语句来进行数据更新,但本地数据缓存改如何更新呢?insert/append,post的方式是不能达到服务器端的数据生成的
ADOQuery1.CacheSize:=1000;
ADOQuery1.CursorLocation:=ctStatic;
不执行UpdateBatch,所有修改都是在本地的,不会提交到服务器
ADO数据集只是用来存储更新的数据