title: TClientDataSet and limit by memory
body: <p>We have a system that creates reports out of our data.  And we can deal with <em>a lot</em> of data.  The idea of over 150,000 rows is not out of the question.</p>
  
  <p>Unfortunately, our experience with <code>TClientDataSet</code> is its limitations, because it often results in an 'insufficient memory for this operation' error, when the data gets too big.</p>
  
  <p>So the question is this: Does there exist a generally available implementation of <code>TDataSet</code> that can handle a large amount of data (such as streaming directly to a file and not keeping the entire dataset in memory)?</p>
  
  <p>I am willing to implement such a class myself.  But as far as I understand <code>TClientDataSet</code>, it needs to be able to contain the data itself before it can save it to a file/stream.  In addition, loading the data again should also be possible as a stream rather than loading in an entire <code>TClientDataSet</code> object, because then we wouldn't have solved the issue.</p>