1

両方の子孫である2つのデータセットがある場合、一方のTCustomClientDataset呼び出しCloneCursorをもう一方の呼び出しに持ち、同じデータの独立したビューを持つことができます。TDatasetProviderドキュメントでは、ソースデータセットを任意のデータセットにすることができることを除いて、を使用して基本的に同じことを達成できるように見えます。

私はこれを機能させようとしています。データベースからデータを読み取る(と呼びましょう)と、別のビューで動作するTClientDataset(と呼びましょう)TSimpleDatasetがあり、に接続されています。ABTDBGridB

を呼び出すB.CloneCursor(A, ...)と、グリッドに。のすべてのレコードが表示されますA。しかし、を作成してTDatasetProviderそのDatasetプロパティをAに設定し、それをのプロバイダーとして設定すると、にB接続されたグリッドBには、すべてではなく1つの行のみが表示されます。

何が間違っているのでしょうか。また、グリッドにすべてが表示されるように修正するにはどうすればよいAですか。

4

1 に答える 1

1

デバッガーでいろいろ調べた後、なんとかこれを突き止めることができました。データセットを開くと、プロバイダーを通じてデータが取得されますが、First最初にソース データセットが呼び出されることはありません。プログラムのどこかで何かが原因で、ソース データセットが最後の行にあったため、ヒットする前に 1 行しか取得できませんでしたEOFFirst事前に明示的に呼び出すと、問題が解決します。

于 2012-09-16T01:55:31.953 に答える