请问TClientDataSet控件数据源在哪里设置??和TTable控件相比,TTable控件数据来源在DatabaseName属性设置,表在TableName属性设置。如何对应TClientDataSet控件呢??详细些,Thanks!
解决方案 »
- 一点小问题------初学者问
- ****失恋了,心情不好,大家有好的聊天室吗?****
- 用adoquery写access数据的问题
- 获得一个窗口的句柄,如何知道它是否还存在。
- 请问ADOQuery+TDataSource+DBNavigator如何获得查询记录集的记录总数,而且能根据DBNavigator记录控制按钮比如上一条,下一条自动刷新表
- 请问如何在程序中创建表?
- 请问:如何让鼠标移到ListBox上的某个Item时让Hint显示,并显示该Item的值(String)?
- delphi中有没有控件数组(象vb一样)???
- 一周没有看懂的源程序,有人能看懂吗?谢谢
- 谁知道*.vts是什么文件。
- 什么控件有如图会计凭证的效果,发个例子学习学习?
- 如有A表中有个字段AA,怎样使AA字段的值在DBGRID显示5列,多的转为下行显示,如次的下去,知道没有数据为止。
或者使用providername从 tdatasetprovider那得到数据;
TClientDataSet是个数据记录管理的最端控件。
修改的数据、新增的数据、删除的数据、等都要通过TDataSetProvider来向上提交;
而两层的实质是在数据集之间加了一个中间层,就是数据集提供者。你看它的名字TDataSetProvider,说明其既和TDataSet打交道,又身兼提供者的重担。
当数据集组件连接数据库后,它不是直接和TDataSource组件相连,而是连接TDataSetProvider。那么作为与TDataSource组件相连的TClientDataSet就必须得到数据,从哪儿来?就从TDataSetProvider来。
你可能问,为什么这样做?为了实现数据缓冲,或者从表面上讲,为了实现多条记录一并更新,否则,你每次都操作在数据集上,而数据集又每次都把结果反映到数据库里,这样怎么实现缓冲的数据集的好处呢?
在设计时,你可以这样使用TClientDataSet:
...
DataSetProvider1.dataset := query1;
ClientDataSet1.ProviderName:= DataSetProvider1;
...
最后一个图:
TDataGrid-->TDataSource-->TClientDataSet-->TDataSetProvider-->TDataSet(-->可能还有数据连接组件)
<TABLE BORDER=1>
<TR> <TD>课程\分数</td>
<td colspan=3><=60分</td>
<td colspan=3>61--80分</td>
<td colspan=3>81-100分</td></tr>
<tr><td> 数学</td>
<td>张身</td> <td>LUCY CHAN</TD><TD>DEON LI</TD>
<td>李问></td><td>林聪</td> <td>陈真</td>
<td>余相></td><td>包进</td> <td>陈华</td></tr>
</table>