ClientDataSet 到数据库 Table
ClientDataSet to Database Table
我有一个包含多个字段的 ClientDataSet。
我的问题是,有谁知道将字段从 ClientDataSet 复制到数据库的方法 table?
ClientDataSet 连接到一个显示所有字段的 cxgrid。我想尝试将所有包含数据的字段复制到 table.
还要指出...ClientDataSet 正在从 XML 文件中读取字段和数据。
任何帮助都会很棒
TClientDataSet
是内存中的数据集,它可以单独工作(就像你正在做的那样)或与数据库会话合作。为了发送数据集的所有内容(所有记录),您需要使用 属性 TClientDataSet.ProviderName
.
将其连接到 TDatasetProvider
组件
由于TClientDataSet
(CDS)最初设计为以断开连接的方式工作,为了支持多层应用程序,CDS与其提供者之间的连接不是通过引用,因为它是TDataSource
引用数据集。 ProviderName
属性 是一个显示提供商名称的字符串。
另一种方法是分配 属性 TClientDataSet.Provider
如果它们都在同一个 DataModule
中,但这将通过代码而不是 ObjectInspector 发生。
TDatasetProvider
需要一个数据集来接收来自 CDS 的所有待定行。 TDatasetProvider
还会生成一些事件,可用于对更新进行更细粒度的控制(我的偏好)。
当 CDS 有记录被更改并需要保留时,您调用 TClientDataset.UppyUpdates
方法,该方法会生成一个 delta 数据包(所有被更改的记录插入、删除或修改)并将其发送给提供商,提供商将对其进行处理以保留每条记录。
如果更新过程中没有发生错误,提供商将向 CDS 发送另一个版本的增量,并将与 CDS 的当前内容进行核对。结果,行的挂起状态被清除以进行另一轮操作。
所以,总结一下:
- 添加
TDatasetProvider
并将您的 CDS 连接到它
- 添加另一个数据集(可以与您的数据服务器一起使用的数据集)并将提供者连接到它
- 当您想将 CDS 增量发送给提供者时调用
cds.ApplyUpdates(0)
- 详细了解
TClientDataset
、TDatasetProvider
和 Delphi 中的数据快照。
我有一个包含多个字段的 ClientDataSet。
我的问题是,有谁知道将字段从 ClientDataSet 复制到数据库的方法 table?
ClientDataSet 连接到一个显示所有字段的 cxgrid。我想尝试将所有包含数据的字段复制到 table.
还要指出...ClientDataSet 正在从 XML 文件中读取字段和数据。
任何帮助都会很棒
TClientDataSet
是内存中的数据集,它可以单独工作(就像你正在做的那样)或与数据库会话合作。为了发送数据集的所有内容(所有记录),您需要使用 属性 TClientDataSet.ProviderName
.
TDatasetProvider
组件
由于TClientDataSet
(CDS)最初设计为以断开连接的方式工作,为了支持多层应用程序,CDS与其提供者之间的连接不是通过引用,因为它是TDataSource
引用数据集。 ProviderName
属性 是一个显示提供商名称的字符串。
另一种方法是分配 属性 TClientDataSet.Provider
如果它们都在同一个 DataModule
中,但这将通过代码而不是 ObjectInspector 发生。
TDatasetProvider
需要一个数据集来接收来自 CDS 的所有待定行。 TDatasetProvider
还会生成一些事件,可用于对更新进行更细粒度的控制(我的偏好)。
当 CDS 有记录被更改并需要保留时,您调用 TClientDataset.UppyUpdates
方法,该方法会生成一个 delta 数据包(所有被更改的记录插入、删除或修改)并将其发送给提供商,提供商将对其进行处理以保留每条记录。
如果更新过程中没有发生错误,提供商将向 CDS 发送另一个版本的增量,并将与 CDS 的当前内容进行核对。结果,行的挂起状态被清除以进行另一轮操作。
所以,总结一下:
- 添加
TDatasetProvider
并将您的 CDS 连接到它 - 添加另一个数据集(可以与您的数据服务器一起使用的数据集)并将提供者连接到它
- 当您想将 CDS 增量发送给提供者时调用
cds.ApplyUpdates(0)
- 详细了解
TClientDataset
、TDatasetProvider
和 Delphi 中的数据快照。