我有一个包含多个字段的ClientDataSet。
我的问题是,是否有人知道将字段从ClientDataSet复制到数据库表的方法?
ClientDataSet连接到cxgrid,后者显示所有字段。所有带有数据的字段我都想尝试复制到表格中。
还要指出...... ClientDataSet正在从XML文件中读取字段和数据。
任何帮助都会很棒
答案 0 :(得分:1)
TClientDataSet
是内存数据集,可以单独工作(正如您所做)或与数据库会话协作。为了发送数据集的所有内容(所有记录),您需要使用属性TDatasetProvider
将其连接到TClientDataSet.ProviderName
组件。
由于TClientDataSet
(CDS)最初设计为以断开连接的方式工作,因此为了支持多层应用程序,CDS与其提供者之间的连接不是通过引用,因为它与{{{ 1}}引用数据集。 TDataSource
属性是一个字符串,显示提供者的名称。
另一种方法是分配属性ProviderName
,如果它们都在同一个TClientDataSet.Provider
中,但这将通过代码而不是ObjectInspector来实现。
DataModule
需要一个数据集,它将从CDS接收所有待处理的行。 TDatasetProvider
还会产生一些事件,可用于对更新进行更精细的控制(我的偏好)。
当CDS的记录已更改且需要保留时,您调用生成增量数据包的TDatasetProvider
方法(所有已插入,删除或修改的记录)并将其发送给提供者,提供者将处理它以保留每个记录。
如果在更新期间没有发生错误,则提供程序会向CDS发送另一个版本的delta,并且它将与CDS的当前内容进行协调。因此,行的挂起状态将被清除以进行另一轮操作。
所以,总结一下:
TClientDataset.UppyUpdates
并将CDS连接到TDatasetProvider
cds.ApplyUpdates(0)
,TClientDataset
和德尔福的datasnap。