请教如何将ClientDataSet用于两层结构。 我想在客户端直接应用ClientDataSet用什么才能给ClientDataSet 取得数据集 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ClientDataSet.data := dspProvider.data DataSetProvider1.dataset := query1;ClientDataSet.data := DataSetProvider1.data; 楼主对TClientDataSet的用法可能没有抓住最核心的地方。TClientDataSet可用于一层,二层和三层,一层就是保存文件,有时候也有运用。三层不说。而两层的实质是在数据集之间加了一个中间层,就是数据集提供者。你看它的名字TDataSetProvider,说明其既和TDataSet打交道,又身兼提供者的重担。当数据集组件连接数据库后,它不是直接和TDataSource组件相连,而是连接TDataSetProvider。那么作为与TDataSource组件相连的TClientDataSet就必须得到数据,从哪儿来?就从TDataSetProvider来。你可能问,为什么这样做?为了实现数据缓冲,或者从表面上讲,为了实现多条记录一并更新,否则,你每次都操作在数据集上,而数据集又每次都把结果反映到数据库里,这样怎么实现缓冲的数据集的好处呢?最后一个图:TDataGrid-->TDataSource-->TClientDataSet-->TDataSetProvider-->TDataSet(-->可能还有数据连接组件) 补充,在设计时,你可以这样使用TClientDataSet:...DataSetProvider1.dataset := query1;ClientDataSet1.ProviderName:= DataSetProvider1;... 关于向量异常处理 条码打印问题 delphi 转行了,散分 关于AdoQuery中使用select语句的,各位大侠帮忙了!送分!拜托了 通过软件设计师,大家来接分,顺便找工作:) 使用quickreport如何人工换行? 我用DELPHI6来连接ACCESS时那个密码的问题处理不好 delphi中的默认打印机问题 快来帮帮我一把! 急急急!!!把delphi的应用程序转换为activeform组件的问题?? 怎样解决DLL中的MDI子窗口不响应Tab键,无提示等问题? 高分请教
ClientDataSet.data := DataSetProvider1.data;
TClientDataSet可用于一层,二层和三层,一层就是保存文件,有时候也有运用。三层不说。
而两层的实质是在数据集之间加了一个中间层,就是数据集提供者。你看它的名字TDataSetProvider,说明其既和TDataSet打交道,又身兼提供者的重担。
当数据集组件连接数据库后,它不是直接和TDataSource组件相连,而是连接TDataSetProvider。那么作为与TDataSource组件相连的TClientDataSet就必须得到数据,从哪儿来?就从TDataSetProvider来。
你可能问,为什么这样做?为了实现数据缓冲,或者从表面上讲,为了实现多条记录一并更新,否则,你每次都操作在数据集上,而数据集又每次都把结果反映到数据库里,这样怎么实现缓冲的数据集的好处呢?
最后一个图:
TDataGrid-->TDataSource-->TClientDataSet-->TDataSetProvider-->TDataSet(-->可能还有数据连接组件)
...
DataSetProvider1.dataset := query1;
ClientDataSet1.ProviderName:= DataSetProvider1;
...