我想知道如何将查询保存在内存中以在 DBgrid 中显示,
我当前的应用程序正在使用:
TZConnection > TZquery > 数据源 > DBgrid
工作正常,但这里的问题是,在调用 ZConnection.disconnect 后,dbgrid 被清理
我想在完成查询后立即断开 TZConnection,因为大多数 MySQL 数据库同时连接的用户数量有限。
使用 TDataSetProvider 将您的查询数据传输到 ClientDataSet。该组件为您完成所有工作。
将以下组件放在您的 DataModule 上,并相应地链接它们:
TZQuery <- TDataSetProvider <- TClientDataSet <- TDataSource
TDataSource.DataSet := TClientDataSet;
TCLientDataSet.ProviderName := TDataSetProvider;
TDataSetProvider.DataSet := TZQuery;
之后,只需调用该TClientDataSet.Open
方法,数据就会自动传输到 TClientDataSet 中。使用TClientDataSet.ApplyUpdates
,您可以将数据推回数据库。
我将该技术与 firebird (TIBQuery) 一起使用。
以下是有关 ClientDataSets 的一些信息:
每个数据库应用程序中的 ClientDataSet
Delphi 深度:ClientDataSet 书籍
使用 ClientDataSet 和 InterBase Express 构建应用程序