Mysql ZeosLib Delphi XE3

时间:2012-12-19 06:17:37

标签: mysql delphi zeos

我想知道如何在内存中保存查询以显示在DBgrid中,

我目前的申请正在使用:

TZConnection> TZquery> DataSource> DBGRID

工作正常但这里的问题是,在调用ZConnection.disconnect之后,清理了dbgrid

我想在完成查询后立即断开TZConnection,因为大多数MySQL数据库同时连接了有限数量的用户。

1 个答案:

答案 0 :(得分:4)

使用TDataSetProvider将Query数据传输到ClientDataSet。那个组件为你做了一切。

将以下组件放在DataModule上,并相应地链接它们:

TZQuery <- TDataSetProvider <- TClientDataSet <- TDataSource

TDataSource.DataSet := TClientDataSet;
TCLientDataSet.ProviderName := TDataSetProvider;
TDataSetProvider.DataSet := TZQuery;

之后,只需调用TClientDataSet.Open方法,数据就会自动转移到TClientDataSet中。使用TClientDataSet.ApplyUpdates,您可以将数据推回到数据库中。

我将该技术与firebird(TIBQuery)一起使用。

以下是有关ClientDataSets的一些信息:
A ClientDataSet in Every Database Application
Delphi In Depth: ClientDataSet book
Building Applications With ClientDataSet and InterBase Express