I'm developing under Delphi an application for collecting data from the Web.
I propose to distribute this compact utility over the Internet.
In my work I met a need to use a ready database engine in order to speed up the process of my software development.
However, the Delphi BDE size makes it almost unusable for my purposes.
That became a reason for me to search for a proper BDE replacement component.
I found lots of proper tools for my purposes in this archive.
Hence, having carried out a small investigation I found out that the most appropriate tool for me was EasyTable.
In the description to the new version of EasyTable (v.1.20) they state that it is equipped with the fastest possible searching engine. Well, it looks like so. I compared DB engines EasyTable (www.aidaim.com), DBISAM (www.elevatesoft.com), FlashFiler (www.turbopower.com), TurboDB (www.turbodb.de), MiniTable (www.unleytools.com) and VolgaDB (www.volgatable.chat.ru) searching speed by the fields of the following types: Integer, String, DateTime, as well as by string with partial compare. I also tested complex search by all the fields of the above mentioned types. All the tests had been run on the base containing 10,000 different records randomly generated. EasyTable really appeared to be substantially faster than the others in all the tests. Here is a part of my testing program's source code for the time measurement of the complex search running:
FilterOptions := [foCaseInsensitive,foNoPartialCompare]; Filter := '(String = '+LowerCase(AnsiQuotedStr(strList.strings[k],'''')) +') and'+ '(Integer = '+inttostr(ints[k])+') and '+ '(Date = '+ AnsiQuotedStr(DateTimeToStr(dates[k]),'''')+ ')'; // timer start testTime := GetTickCount; if (not FindFirst) then raise Exception.Create('FindFirst: not found, filter = '+Filter); // timer stop testTime := GetTickCount-testTime;
Furthermore, I carried out the same measurements for the filtering speed. EasyTable appeared to be the fastest program in all theese tests, too.
Except of the fastest to date searching and filtering, I was also pleased to work with such necessary for my project functions as multiple index for all the table fields, compression "on the fly" and reliable data encryption.
I also found that the tool is supporting all the necessary data types, including BLOB. Master/Detail support essentially facilitates the development process, not to mention that searching and filtering are supplied with such handly operators as 'is [not] null' and the 'like' operator with its advanced substring search using wildcards '%' and '_'. Moreover, when I had to import a database from the Paradox format, I met no problems doing it, due to the built-in universal (from any DataSource) data import tool. As far as I plan to distribute my program worldwide, I need to use Internationalization/ Localization opportunities, for I need my string field sorting to use language and encoding set in the end-users' system. I must say that this option is a well-thought and well-done thing by the EasyTable developers (AidAim Software). After all, with all these advanced options EasyTable has just very compact size (at about 240 KB). I didn't meet any problems using standard DB-aware visual controls including QuickReport and DBGrid.
Another pleasant thing dealing with EasyTable is AidAim Software technical support service.
People there provided me with some professional advices on using EasyTable for my concrete purposes.
Now I purchased the EasyTable Pro version and my software development process is in full swing.
In conclusion, I'd like to thank the founders of this archive, for due to their splendid collection of Delphi components I carried out my tasks successfully.
|