xml 形式の 500.000 レコード データベースを用意し、xe5 Delphi 64 ビット アプリケーション (ClientDataSet) で操作してみます。完全に読むと、4 GB 以上のメモリが必要になります。fetchondemand=False および PacketRecords=5000 プロパティを使用しようとしましたが (ドキュメントに記載されているとおり)、まったく機能しません。アプリケーションは、これらの変更に単に鈍感です。誰でも私を助けることができますか?
質問する
722 次
1 に答える
1
私の質問を読んで、私を助けようとしたすべての人に感謝します. 最後に、メカニズムが明確に説明されているデモを見つけました。解決策は非常に簡単です。使用されるメモリを制限するために、fetchondemand を使用する場合は 2 つのデータセットが必要です。デフォルト設定 (True および -1) を持つ最初のデータセットは XML データベースを指し、データ プロバイダーはこれを指し、2 番目のデータセット (fetchondemand プロパティが False に設定され、DataPackets が目的のレコード番号に設定されている) を指しています。 1 つのパケットで取得する) はデータ プロバイダーを指しており、データ認識グリッドはこの 2 番目のデータセットのみを指しています。プログラマは、GetNextPacket プロシージャを使用して、XML データベース全体をグリッドで解析するためのページング メカニズムをコーディングする必要があります。
このようなばかげた質問でお騒がせして申し訳ありません。この回答が、私のようにこのメカニズムをよく理解していなかったすべての人に役立つことを願っています。
ありがとうございました、
ラズロ
于 2014-02-13T14:58:53.870 に答える