On 21.01.2013 22:31, Andy wrote: > I had already tried that solution in between my post and yours, but it > fails with an out of memory error after about 15 seconds, before it gets > as far as displaying anything. I'm running Win 7-64 with 12Gb physical > memory. I am not surprised. I find TClientDataSet generally unstable, inconsistent, memory demanding, and slow. > Only 165,000 rows, but quite a lot of strings on each row. DISQLite3 delivers 165,000 rows quickly, but TClientDataSet is the bottleneck. Try loading the same number or records from another database and you should see similar timings. > SQLiteSpy starts quickly, but does it use TCLientDataSet? I don't have a > problem unless I use TClientDataSet. If there is another way to hook the > dataset up to a dbgrid without using TCLientDataSet it might solve the > problem. For performance, SQLiteSpy does not use TClientDataset. Instead, it uses a custom grid based on TVirtualStringTree, quite similar to the one featured in this demo: SQLite3\Demos\DISQLite3_Buffered_Grid I have experimented a lot and found this by far the fastest grid solution, both for data handling and display. As a welcome side effect, it has not string length limits, either. Ralf _______________________________________________ Delphi Inspiration mailing list yunqa@xxxxxxxxxxxxx //www.freelists.org/list/yunqa