我想知道如何将查询结果保存在内存中以在DBgrid中显示。
我的当前应用程序使用:
TZConnection > TZquery > DataSource > DBgrid
它工作正常,但问题在于,调用ZConnection.disconnect后,dbgrid会被清除。
我希望在查询完成后立即断开TZConnection的连接,因为大多数MySQL数据库同时连接的用户数量是有限制的。
我想知道如何将查询结果保存在内存中以在DBgrid中显示。
我的当前应用程序使用:
TZConnection > TZquery > DataSource > 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
,可以将数据推回数据库中。