I use a TAdvGridExcelIO together with TDBAdvGrid (PageMode=True), exporting a small amount of rows with 4 columns is fast (seconds). But when I want to export a large amount of data (ie. 4000 rows/4 columns) then it takes forever (many minutes) and sometimes it just freezes. I have tried several combinations of what to export but that doesn't help much. Which limits are there for this component and how does TMS test its capacities ? What can I do to speed up the export process ?
Does it make a difference when you set PageMode=false?
With Pagemode=False exporting 4122 rows takes 24 seconds. Pagemode=True with 4122 rows takes 6 minutes and 20 seconds. I have a table with 8 million records which can be selected by the user to display in the grid. That means I have to use PageMode=True. It's a NexusDB table with the server on the same PC and connected via NamedPipe.
TAdvGridExcelIO generates .XLS files and the limitation for the .XLS file format is 65535 lines. This is the limit inherent to the Microsoft .XLS file format. If you need more rows than 65535, you'll need to export to .XLSX format and you can do this with TMS Grid Filters:http://www.tmssoftware.com/site/advgridfilters.asp (which is a bridge between TMS Grids & TMS Flexcel.)
With respect to speed, the speed is clearly affected by looping through each row in your dataset (PageMode = true) versus a one time load operation (PageMode = false), i.e. it is more affected by dataset speed than speed of the grid. We have not tested with Nexus DB but we have tested with other databases and have not seen such slow behavior.
What kind databases did you test ? How many records and fields ? Memory-based databases ?
I have retested this here with an ADO dataset, 10000 records, 15 fields
Hi,
Delphi XE, Win7 Pro. I wiil try Flexcel6
Did some test runs with Flexcel and Gridfilters, makes no difference.....
Yep, I expected it wouldn't make it when you said it was XE, the problem with Stream is in XE3.
I found the bottleneck after testing over and over again. The "ExportNotification" from DBAdvGrid is the problem. I have DataSetType=dtSequenced and DataSetTypeAuto=True, the last one decided that TnxTable is of type dtNonSequenced and therefore ExportNotification does for every record a "First' commando and then "MoveBy" the required records. That slows everything down !
Did some optimizing and tweaking in unit tmsAdvGridExcel and now I reduced the amount of time for exporting 4122 records from 29 sec. downto 8 sec. Now I am happy.....