|
3rd Party Support SuperFastDistinct! currently supports tables from: ...more databases are on the way
What if my database isn't included in the list? Will SuperFastDistinct! work with it?
It all depends on how your Table component works. Your Table component needs to have a cursor into the data so it doesn't try to load all of the data into memory. Most 3rd party databases work this way. But some client/server database components will try and emulate the Table component with an underlying Query component. This won't work because without a cursor into the table it will try to load all of the rows into memory. For example, if the table has a million rows in it, it may attempt to load all million rows into memory when the table is opened, which is what their SQL query would do. If this happens then SuperFastDistinct! is of no advantage because of the enormous load times involved. A simple test would be to use a TdbGrid that uses the table component that points to a large table (at least 100,000 rows). If you can open the table and page from the first row to the last row of the grid in less than a second, then your table is using a cursor and will likely work with SuperFastDistinct!.
How do I modify SuperFastDistinct! to work with a database table that is not currently supported? To add support for a new table component is quite easy and should take less than 15 minutes. The SuperFastDistinct! source code (included) has all of the 3rd party code bracketed by conditional defines like "{$IFDEF WantAdvantage}" ... "{$ENDIF}" that can be turned on or off in the \SuperFastDistinct\DxBin\SuperFastDis.Inc file. Just copy and paste the conditional code for an existing database like Advantage and change the "TadsTable" to your table type, such as "TMyTable". Remember to add the conditional define statements around the code "{$IFDEF WantMyTable}" .. "{$ENDIF}" and add an entry in SuperFastDis.Inc so you can turn support off if it's not needed. So it's just copy and paste a few lines of our existing code and change the table type. It's that easy. You can do the same thing with our benchmark demo program so you can test the speed difference on your existing tables right away.
|