We have some issue with the dxEpress driver for MS SQL
But your driver buffer all records in memory, as a result in query with more then 1M records we get SQL Error:Out of memory. In the same time, with standart MS SQL driver, there are no such issues.TSQLQuery is a unidirectional dataset. Unlike other datasets, unidirectional datasets do not buffer multiple records in memory.
Simple test. Delphi7 + MS SQL 2008R2
Create table with more then 100k records.
Start Delphi7, look at its memory usage. In my case it was about 26M.
Then place TSQLConnection and TSQLQuery on form. First try standart MS driver with query "select * from TABLE1". After activating query there was no process activity and memory usage was still 26M.
If we use your driver delphi takes 50% of CPU for about 10-15 sec and raises memory to 150M.