▶ RBC Release Notes  
   Read: Rubicon Moves  

RBC Release Notes: order by version desc

Latest Rubicon version: 4.079

Page content updated 01-Apr-2024 New York time

All notes on this page apply to Rubicon Search Engine Components for Delphi and CPPBuilder, maintained and published by HREF Tools Corp.

Setup installer for paid edition is available as of   28.Mar.2024 20:30 utc.
FireDAC Rubicon Update sample project has been refactored and improved. This is a single-client example to show how one can leverage the TrbFDQuery for TEXT that needs to be edited. It supports editing within a pre-defined Min/Max range of primary keys.
FireDAC and UniDAC Make and Search sample projects are working on Ansi and UnicodeString data samples.
Subversion: /rubicon/tags/2024-04-01_2130_v4.079
Setup installer for paid edition is available as of   15.Feb.2024 04:00 utc.
rbSQL Oracle datatypes reverted (see comments for v4.076 below).
Improvements to FireDAC and UniDAC bridges. UniDAC bridge is working for Make and Search on English-only Ansi data thus far.
Subversion: /rubicon/tags/2024-02-15_0359_v4.078
Setup installer for paid and lite editions released   11.Feb.2024 05:20 utc.
Sample projects support FirebirdSQL v4 and PostgreSQL v16 as built-in choices.
Utility for creating local copies of the sample data files lets you download the .FDMEM binary images, and then import those locally. This guarantees an equal starting point for everyone. Previously we imported from CSV and that introduced data conversion errors, sadly.
ElevateDB bridge and samples improved.
UniDAC bridge and samples improved but not finished.
Subversion: /rubicon/tags/2024-02-11_0527_v4.077
Setup installer for paid edition released   5.Feb.2024 07:40 utc.
Includes support for Delphi 12, also known as D29.
NB: the r_core\rbSQL.pas file was changed in a way that is significant when using Oracle DBMS. Reference class procedure TrbWordsSQLLink.BeforeStateEx at line 949 in the source code. Feedback about this is very welcome.
This release is suitable for customers who need updated r_core source files to compile into existing Delphi projects.
The sample projects for bridges other than FireDAC are in flux. Many are not ready.
The UniDAC bridge is not ready.
Subversion: /rubicon/tags/2024-02-05_0807_v4.076
In-house release for testing with Delphi 12.
Setup installer released   10.Sep.2022 06:30 utc.
Essential patch for D22..D26 for rbSearch.pas (Thanks to Willem in Belgium for the alert.)
Cleared compiler warnings from rbCache.pas
Sign up to Rubicon Announcements to receive an extremely brief email when a new Rubicon release comes out....

Setup installer released.   23.Aug.2022 10:15 utc.
Fix: win64 support; see TRbcTagInt vs TRbcTagIntLogic in rbBase.pas
fix: TrbEngine.Notification avoid A/Vs on Destroy when WorksLink exists but has no connected DataSet; see rbBase.pas
OnPreviewLocation handler improved
The International property has been removed. This oddly named property was relevant in year 1996 when searching English text and having typos involving accented characters.
Setup installer ready 20.Mar.2022
Patch to rbBase for segmented indices.
Patch to rbBase for I/O Error 6 during search.
IBObjects samples improved.
The RbcResetSampleData v3.103 utility supports a command-line parameter for use when importing Recipe data, especially into FirebirdSQL. If you do not need the full dataset, you can specify a Filter to dramatically increase the import speed. Example: /Filter="RecipeBaseNo <= 100"
TrbTextDataSetLink.GetLocation: only raise exception with DataSet is Active
CPPBuilder support confirmed with the NexusDB bridge.
Fix to rbSearch.pas on-destroy, relevant to the Showcase_K project, and other custom projects.
New event, OnPreviewLocation, enables developers to add custom filtering of potential search results based on completely custom logic. Credit to Dany Marmur for the idea.
Further adjustments to remove the Windows platform dependency.
Subversion: /tags/2022-01-20_2127_v4.071
15.Jan.2022 05:35 utc.
This release includes a significant new sample project, ExUpdate_K which is for bridge K, FireDAC. It demonstrates how you can maintain the WORDS table in real time when a user updates TEXT. This is relevant to some but not all use cases. Please contact tech support to discuss your situation if needed.
Ongoing tiny adjustments with the goal of compiling for all platforms with FireMonkey soon.
Significant fixes to the Rubicon Setup including
  • correct default compiler choices on a new clean machine for paid licenses
  • correct compiler choices upon repeat install of the paid edition
  • detection of the paid license for initial package compilation
  • default install folder is now under My Documents instead of the public user documents area
  • launches Windows File Explorer to show the Rubicon files
Subversion: /tags/2022-01-15_0545_v4.070
12.Dec.2021 06:35 utc.
Fix: IBObjects bridge adjusted so that it can work more easily with the sample projects.
Fix: removed dependencies on FireDAC.Phys drivers from the sample projects such that samples can compile easily with Delphi Pro. Previously you needed Delphi Enterprise or to remove those units from the uses clauses yourself.
Started the process of removing dependencies on the WinAPI, leading up to stronger support for FireMonkey, Android platform in the future. If you are already fairly experienced with FireMonkey and want to test this, please contact tech support and we will arrange an evaluation license with source.
Subversion: /tags/2021-12-12_2130_v4.069
Includes Delphi 11 support for FireDAC, ADO, IBExpress plus NexusDB, IBObjects, DOA and UniDAC
Showcase_K cosmetics: the photos for the recipes are now downloaded with THTTPClient instead of URLDownloadToFile. The latter worked well for us in July and August but was having trouble on too many Windows systems. Hopefully everyone who wants to see photos will be able to now.
Setup improved for installing onto a clean machine that does not yet use ZaphodsMap for configuration. The error at the end of Setup – "Blank License" – has been fixed.
Showcase project adjusted so that its datamodule loads in Delphi older than v11.
This release corresponds precisely to rubicon/tags/2021-09-28_0741_v4.066
Supports D22 to D28. Yes: Delphi 11 support.
Supports D22 to D27.
All of the help notes written by Deven Hickingbotham have been moved into the Pascal source such that they are of use to developers while coding. Previously they were primarily available in a Paradox table and in a spreadsheet.
New Showcase project demonstrates Rubicon with a large recipe database, using FireDAC for data access. The Setup gives you a precompiled Showcase_k.exe plus the recipe.db3 so that new users can try it immediately.
CPPBuilder support streamlined
FREE Rubicon Lite installer is available for Delphi 10.4.x, D27 and Delphi 10.3.x, D26. See Rubicon Downloads.
Most of the prior limitations on the Lite edition have been removed. There is no longer a limit on the size of the WORDS table. There is no longer a delay on each search nor as part of the Make operations.
Support for D28, Delphi 11, is just around the corner, pending public release by Embarcadero.
For anyone using full source from subversion, this release corresponds precisely to rubicon/tags/2021-08-31_0332_v4.056
In-house release
This release is suitable for use by people who already know how to use Rubicon and do not need to rely on the sample projects.
Files for D19 through D27 are included, and those work with CPPBuilder.
Setup prompts for your choice of folder for Rubicon Sample data files.
If you install on win32, the ZMLookup.exe will be suitable for win32. RbcAssistant is always provided for win32. RbcResetSampleData.exe is only supported for win64.
Uninstall: removes Rubicon r_redist package files properly.
In-house release
We have made a major simplification to the way the required dynamic SQL is generated for various kinds of DBMS and database access components. Almost all of the specialized adjustments have been moved out of the bridge units and into the rbSQL.pas unit.
As one example of how these must differ by DBMS, SQL must use keyword 'VARCHAR' for Firebird yet 'NVARCHAR2' for Oracle.
It remains possible to override the field types, but, the left-of-equals key in the Params list has changed for clarity. Unless your custom code was overriding these values, there is no action required.
For the record, the changes to the ['key'] of Params were:
  • NVARCHAR to rbftString
  • VARCHAR to rbftFixedChar
  • BLOB to rbftVarBytes
All rubicon paths start with r_ and match up exactly between the subversion repo source and the files installed via Setup. For example, instead of rubicon\source, the r_core folder now contains all the core source code. All the demo projects have been moved to r_samples. All the package files have been moved to r_redist.
Fixed: there is no longer a requirement to program the OnMinIndex and OnMaxIndex event handlers.
The utility to download and configure sample data for the sample projects is included with installation. See r_setup\RbcResetSampleData.exe
For CPPBuilder, there are no longer separate packages and namespaces. Just install for Delphi. The packages will be under the r_redist folder, and components will be available to both Delphi and CPPBuilder. You can look on the palette for TrbMake to confirm this.
Issue: packages do not UNINSTALL themselves properly. After running Uninstall, you still have to remove them from Delphi. (fixed in v4.062)
Pending: the r_samples projects still need some polishing. If you already know how to use Rubicon, ignore the samples and just recompile with the source in the r_core, r_core\inc and r_core\externals folders.
Pending: the manual and other documentation does not yet know about the wonderful new consistent r_ path names.
Going forward, Rubicon will be available only in two editions: fully paid with full source or Lite with FireDAC, IBExpress and ADO bridges.
Supports Delphi XE through Delphi 10.4.2 Sydney, i.e. D19 – D27.
Setup installer is ready. Full source is available to people with a paid license, via subversion.   03.Jun.2020 05:00 utc.
This is a free upgrade for anyone with a Rubicon v4 license.
in-house release
Delphi 10.3.3 support.
FireDAC is now the primary supported component bridge for Rubicon. We have many examples and test projects using FireDAC, and performance is excellent.
The Search example project, when compiled with Delphi Architect and the midaslib unit, demonstrates the TrbMatchMaker component being able to fill in a TClientDataSet automatically based on the search results.
New: Zeos support. Zeos is a free, open-source database access component suite which connects to a wide range of systems including MSSQL, Postgresql, Firebird, Interbase, Oracle and many more.
Standardized configuration for example projects: all the examples are moving toward loading the connection details from INI files. These INI files are in the format supported directly by FireDAC. Rubicon provides conversion to other syntax for the other bridges. Full source is included for all examples and utilities, and you are always welcome to configure your own components in a different way.
If you are a Rubicon customer and want subversion access, please make a free account on and send your username to Customer Service along with your date of purchase and order reference. See also: Practical Subversion – video by HREF Tools Corp. The svn tag which corresponds to public release v4.058 is /tags/2019-12-22_1736_v4.058.
A Lite version is available.
Delphi 10.3.2 support.
Fixes nvarchar issue with FireDAC and Oracle.
Fixes issue with FireDAC and PostgreSQL. Now, if the WORDS table pre-exists, it will be automatically dropped before the Make-Dictionary process starts.
4.055 (06.Mar.2019)
Includes better support within the FireDAC bridge for PostgreSQL.
4.054 (Feb.2019)
Supports Delphi XE5 "D19" through Delphi 10.3 Rio "D26."
FireDAC support has been improved with significant bug fixes. Sample projects using FireDAC can be tested with the free Delphi Community Edition "CE".
Delphi CE with FireDAC supports these database engines: ADS, FB, IB, IBLite, MSAcc, Mysql, PG (PostgresSQL), and SQLite. Delphi Enterprise supports a much wider range including AS400.
The BDE and dbExpress bridges have been made inactive.
New users can be given access to a new set of simpler, more powerful sample programs.
Two new people are on the Rubicon Development team.
4.053 (22-Jul-2017)
In ProcessField, ftLargeint, ftLongWord, ftShortint, ftByte treated same as ftSmallInt..ftDateTime.
Supports latest Delphi 10.2 Tokyo and C++Builder 10.2.
Registered customers who have an account at riouxsvn may have access to the subversion repository with full Rubicon source.
4.052 (19-May-2016)
Supports latest Delphi 10.1 Berlin and C++Builder 10.1.
4.051 (8-Sep-2015)
Supports latest Delphi DX10 and C++Builder CX10. This version is available for registered customers only.
4.050 (25-Aug-2015)
This release fixes issues in the Eval and Lite Setup. Precompiled packages are included for win32 and win64, both Delphi and CPPBuilder.
No changes to the Rubicon source itself.
4.049 (04-Aug-2015)
FireDAC bridge K with Microsoft SQL Server for the text data: fixed.
Support for Delphi XE8 and C++Builder XE8.
This version supports XE3 through XE8.
4.048 (in-house only)
IBObjects bridge: TrbCustomTextIBOLink.GetFieldNames quicker; more logging to CodeSite in the case of exceptions and errors due to missing setup details
4.047 (07-Oct-2014)
XE7 bridges activated with correct package names for these third party component sets: Absolute, Apollo, DISQLite, DOA, PgDac, SDac, NexusDB, UniDAC. This change is relevant for the paid edition and for the evaluation edition.
4.046 (19-Sep-2014)
Support for Delphi and C++Builder XE2 through XE7, within paid Rubicon. Lite and Eval Setups are available for the latest three Delphi compilers: XE5, XE6, XE7.
Demos: SQLite3 database examples added.
Demos: New version of RbcResetSampleData is included.
Setup:: During installation, all demo *.dproj files are automatically adjusted to have the correct settings for runtime packages, source folders, exe output folder and dcu output folder.
Setup: eval and registered Rubicon users will have less clutter from unused bridge files when installing this release, because unnecessary demo and bridge source files are erased automatically.
The FireDAC bridge in XE7 has some issues with saving BLOB data and with access violations during Destroy. The "make" and "search" examples work, but they work slightly better in XE6. You will see some Rubicon source code IFDEFd accordingly.
The BDE bridge is not supported by Rubicon with XE7, because BDERTL has not shipped with the initial release of XE7 in early September 2014.
4.045 (27-Aug-2014)
The RbcAssistant utility has been improved for integration with the FireDAC and NexusDB bridges such that those packages will be found automatically during installation and should not require manual editing of the paths in RubiconCompilation.xml. In general, any bridge that uses the BDSUSERDIR or BDSCOMMONDIR to locate its BPL and DCP files will now have its packages found without effort.
Last version of Rubicon to support D2010 (D14) and XE (D15).
4.044 (22-Aug-2014)
Lite edition available for XE5.
Eval edition available for XE6.
FireDAC (AnyDAC) packages and demo source files are available in the Lite and Evaluation editions
Package name details have been updated for these bridges: Absolute, Advantage, Apollo, Direct Oracle Access, DBISAM, ElevateDB, PgDAC.
4.043 (29-Apr-2014)
XE6 support.
C++Builder: fix in Setup that had prevented installation of some files for c18 and c19.
UniDAC bridge: fix in TrbCustomWordsUDALink.SaveData for SetBlobData.
4.042 (in-house only)
For D2010 compatibility: removed ServerType from Interbase Express demo DFM files; removed Vcl. and Data. unit name prefixes from demo PAS files.
4.041 (09-Dec-2013)
Make: the Execute method on the Make component will open the text link automatically.
Append Demo: this demo has been cleaned up and confirmed working with the FireDAC bridge with XE5.
UniDAC: avoid problems with different providers by avoiding the Prepare step in TrbCustomWordsUDALink.Properties.
4.040 (03-Dec-2013)
UniDAC bridge: in TrbCustomWordsUDALink.Properties, LoadFromStream uses ftBytes with NexusDB.
NexusDB bridge: if primary index for Words table is already present, do not add it again (avoid exception during Make).
4.039 (20-Nov-2013)
UniDAC: DataType of fields in the Words table is coded according to whether the UniDAC provider is Interbase or NexusDB.
All variables of size LongInt have been reviewed for accuracy in win64 compilation. Source: rbBits, rbStBits.
UniDAC: small changes to demo files.
4.038 (28-Oct-2013)
UniDAC: 2 small changes to the UniDAC bridge to control field type with NexusDB.
4.037 (15-Oct-2013)
XE5 support
FireDAC: dozens of adjustments have been made so that Rubicon Bridge K compiles for XE5 with FireDAC names, plus bridge K compiles for older Delphi with the original AnyDAC unit and component names.
Speed optimization during Make and Search when International property is True. This (perhaps poorly named) property controls whether alphabet letters with diacritical marks are considered the same as letters without any marks. Example: Médico, Medico, Medicó would be considered identical.
NB: If you had International set on TrbSearch in any DFM files, you will need to allow Delphi to erase that property setting from your DFM. The property is now defined in rbBase. Set it on TrbMake. This will set a flag within the index so that searches know whether International is applicable at search time.
The units changed for this optimization were: rbBase, rbSearch, rbMake and rbUtils.
New binary for RbcResetSampleData.exe. This file is available via separate download for use with other versions of Rubicon. The main change is that Indy TidHttp is used to download the data files instead of the separate url2file utility. This made it possible to show a progress bar, which seemed necessary for the larger sample data files.
Setup: the default install location is no longer necessarily c:\Program Files (x86)\. The default location is now relative to where you have installed the highest version of Delphi. The HREFTools folder tree will be parallel to the Embarcadero tree. The reasons for this are (a) to limit the UAC problems associated with the protected folder and (b) to increase convenience for those people who like to install to alternate directory trees.
4.036 (in-house only)
4.035 (11-Aug-2013)
AltMemMgr is no longer defined by default in the Rubicon include file. There is no longer a need to set that property to False on the cache component. Pending a code review, the alternate memory manager code will be stripped from Rubicon in the future.
The few lines of demo code that referenced AltMemMgr have been IFDEF'd.
4.034 (19-Jul-2013)
rbDS.pas: keyword Field changed to variable AField to avoid nil reference
Firebird copy of Rubicon Help database set to use UTF-8 not ASCII. Resulting FDB file is available for download from
New binary for RbcResetSampleData.exe.
FireDAC ExMake demo improved.
Some but not all LongInt variables changed to NativeInt.
4.033 (19-Jun-2013)
rbBridge_u_unidac.pas: tiny fix to parameter name passed to PrepareQuery.
4.032 (4-Jun-2013)
rbSQL.pas: tiny fix. The TrbWordsSQLLink.Destroy method was missing a call to inherited.
4.031 (28-May-2013)
IProviderSupport bridge is complete. This is a bridge suitable for use with any multi-table query derived from TDataSet. It enables indexing of multiple tables with database systems (such as Apollo) that do not have a SQL View feature. Source: rbBridge_0_query.pas; Demo projects are in the IBExpress and AnyDAC demo folders.
Rubicon Reference PDF updated; see new section, Example: Customizing the Multi-Table Demo, on pages 70-75.
Setup\RbcResetSampleData.exe does not yet download data for the nutrition database. If you want to run those multi-table examples, download using your web browser, from
4.030 (10-May-2013)
Apollo bridge re-activated. The Apollo bridge was part of Rubicon version 1 and 2. It has been updated for use with Apollo 7 and Unicode Delphi.
IBObjects: available for XE4.
Separation of BDE layer: All Rubicon TQuery link components have been moved from rbQuery to rbBridge_b_bde.
OnAfterSQL event parameter changed to TStringBuilder
IProviderSupport work is in progress. The good ideas from the original BDE rbQuery unit are being refactored in a new unit (temporarily named rbDataSet.pas). This work is commented out in v4.030. See rbBridge_0_query.pas in Rubicon v4.031.
4.029 (2-May-2013)
Supports Delphi XE4 and CPPBuilder XE4.
Demos for FireDAC improved. The Make example runs with Firebird server - tested with Delphi XE4.
The database bridges that are active by default for XE4 in this release are: ADO, AnyDAC, BDE, dbExpress, FIBPlus, IBExpress, NexusDB, PgDac, SDAC, UniDAC. The full set of bridges are fine to use with earlier versions of Delphi and CPPBuilder.
Note: Embarcadero released FireDAC files for XE4 on 24-Apr-2013 and IBExpress files for XE4 on 1-May-2013. The files are available through
4.028 (26-Apr-2013)
Significant rewrite of TrbWordsDataSetLink.SaveData in rbDS.pas. This prevents an access violation.
Changed the NexusDB bridge to turn off transactions while index is added. The symptom had been error message "rbWord field missing."
FireMonkey example projects are included for the IBExpress bridge. These are intended for use with the latest FireMonkey (FM3) included with RAD Studio XE4.
AnyDAC/FireDAC bridge is installed by default.
XE4 support is enabled but incomplete. This release is intended for people using Delphi 2010 through XE3 and NexusDB.
Note that the 24-Apr-2013 release of RAD Studio XE4 does NOT include files for IBExpress. Embarcadero will ship those files later, via My Registered Downloads in Rubicon with XE4 cannot use the IBExpress bridge until this happens.
4.027 (14-Mar-2013)
Fix to rbHints.pas unit
ExHints demo project now uses shared routines
4.026 (1-Feb-2013)
FIBPlus: Library name for XE3 corrected.
4.025 (18-Dec-2012)
The files for XE3 were built with update #1.
rbMatch.pas tuning for situation wehre OnMaxIndex and OnProcessField are assigned.
rbMatch.pas: cleared compiler warning
IBObjects bridge: Lowest, Highest overrides restore prior SQL
BDE bridge: working with XE3 update 1.
4.024 (10-Dec-2012)
rbMatch.pas fix for situation where OnMaxIndex event handler is assigned.
rbDS.pas, rbUtils.pas and other core and bridge units fixed to avoid compiler warnings in XE3 regarding the use of GetData, SetData, SetBlobData (syntax changes as of XE3). New function, DataToBytes, in rbUtils is used for this.
Demos: ExSrch demo extended for easier learning as well as easier testing of performance as related to various properties on the TrbSearch and TrbMatchMaker components.
Demos: ExSrch demo performance is excellent; all settings which were previously causing slow response have been moved to the GUI so that they are easily experimented with. This is the difference between a 5.0 second delay or a 0.1 second delay.
Demos: ExSrch demo controls choice of fields shown during 3rd stage (Display Matched).
Demos: ExSrch demo lets you compare a search for 3 words done with Rubicon versus using a SQL LIKE query, for example, across the 15 Narrative fields in the RailAccident database.
This version was used to produce the Rubicon Quick Start Video (Make and Search)
4.023 (3-Dec-2012)
Demos: newer version of RbcResetSampleData.exe. This one and all future updates may be downloaded from
4.022 (3-Dec-2012)
Setup manifest requests user, not admin, permissions. This will improve installation results on Windows with UAC active where Windows User Name is not Administrator.
Demos: ExMake, ExSrch forms use Segoe UI font. Controls are larger for easier use on high resolution monitors. Both the Make and Search demos provide timing stats upon completion. The Search demo breaks out several steps, to give a better idea of where delays are introduced (ie. TrbMatchMaker).
Demos: Make, Search, Append and Update demos share code which reports a few details during operation, including 32/64-bit operation, database server type, and timing statistics.
4.021 (19-Nov-2012)
Package names updated for latest release of DBISAM and ElevateDB.
In case of out-of-memory exception during Make, set TrbMake.AltMemMgr to False.
If you like to use Raize CodeSite and have Rubicon with source, you can compile with -DCodeSite;LOGRUBICON;LOGRUBICONPARSE; for extra detail during Make and other steps.
Sample database known as RailAccident is much larger (years 1975 to 2012 rather than just year 2011). This enables more realistic testing of both indexing and searching. Files are available for Paradox, DBase, Firebird, Interbase and Access, plus tab-separated-values.
4.020 (6-Nov-2012)
Eval Setup prompts for serial number, for compilation with database bridges other than ADO/BDE/IBX/DBX.
EXEs compiled with an evaluation license can be tested without Delphi running.
ExSrch search demo uses a subset of fields when matching against the Rail Accident database.
4.019 (30-Oct-2012 22:00 gmt)
Optimized ExtractWord and ExtractWordEx procedures such that there should be no performance degradation on long strings (example > 1mb in length).
4.018 (29-Oct-2012)
FibPlus 7.4 supported for XE2 and XE3
Normalize and FastUppercase procedures optimized.
4.017 (7-Oct-2012)
Demos: placement of ButtonNext always within form
RbcResetSampleData: can download All content types at once for 1 engine
On a system which already has WebHub installed, the rbReg.pas in the Rubicon core package will NOT register TtpComponentPanel as that would lead to an un-catchable duplicate-component-exception.
4.016 (5-Oct-2012)
Latest DBISAM 4.3.4 supported
ExMake and ExSrch demos standardized for these demos: ADO, Advantage, AnyDAC, BDE, IBExpress, DBExpress, IBObjects, NexusDB, UIB, UniDAC.
Minor edits to rbBridge*.pas files to make demo maintenance easier.
4.015 (30-Oct-2012)
Demos: UIB files refactored and compilation tested with XE2; IBExpress minor fix.
ExMake and ExSrch demos standardized and ready for these demos: ADO, BDE, IBExpress, DBExpress, IBObjects, NexusDB, UIB.
4.014 (28-Sep-2012)
Package folders and dccdpk.bat files created by Setup for paid edition (they had been skipped in 4.013).
ExMake and ExSrch demos standardized and ready for these demos: ADO, BDE, IBExpress, DBExpress, IBObjects, NexusDB.
4.013 (27-Sep-2012)
Tiny changes to BDE, dbExpress, ADO and NexusDB bridges: made certain properties Public not Protected in base classes. This enables the ExMake and ExSrch demos to share initialization code.
NexusDB demo projects cleaned up. Sample data available in NexusDB format.
Paid edition: source for bridges where the third party vendor has not yet announced support for XE3 is installed regardless, so that you can recompile for that bridge as soon as you obtain files from the vendor, i.e. without waiting for HREF Tools to officially add support.
Minor changes to the INC files for some bridges, to provide library names for XE3.
TPack component TtpComponentPanel is included and used in the BDE, ADO, IBExpress, dbExpress, IBObjects and NexusDB demos.
The name space for the miscellaneous HREF Tools units used by Rubicon is HREFTools.Rubicon.Rel201219. The DPROJ files for the demos include this in their DCC_NameSpace.
4.012 (18-Sep-2012)
User manual updated for v4.1
These third party bridges are enabled for XE3: ADO, BDE, dbExpress, IBExpress, IBObjects, NexusDB, PgDAC, SDAC, UniDAC. The others are awaiting XE3 support from the vendor and they are still available if you install for a compiler older than XE3.
4.011 (13-Sep-2012)
The BDE bridge has been re-enabled. It works in Delphi 2009 through XE2. It fails in XE3 due to a known bug; reference Embarcadero Quality Central #108660.
4.010 (12-Sep-2012)
First version to support RAD Studio XE3.
First version in many years to have a clean, working set of example files for 3 database bridges that ship with RAD Studio (IBExpress, dbExpress and ADO).
BDE demos are temporarily unavailable.
For XE3, .groupproj files have been added for the 3 database bridges such that all demos can be opened and built quickly. The appropriate runtime library package names have been pre-entered so that Build > All will succeed immediately with Lite and Eval editions. (Previously the developer had to paste in the correct list of runtime library names.)
A licensing issue relating to loading the correct path for the demo databases was fixed in the Lite and Eval editions.
Sample data files have been reviewed and cleaned up for Interbase, Firebird, Paradox and Access. The RubiconHelp.MDB file needed the biggest changes. (Thanks to the free utility MDB Viewer Plus for the MDB admin tasks.)
A new utility is available for downloading/importing sample data for the demos: Setup\RbcResetSampleData.exe. For Interbase and Firebird, this will create the local database if needed, and then import clean data from CSV files. For Paradox and Access, the downloaded files are binary ready-to-go databases.
Bug fix to TrbWordsSQLLink.qCreateTable for databases with blank/unspecified charset.
4.005 (7-May-2012)
Source\inc\rbc_library* files added for remaining bridges.
FREE Evaluation edition available.
4.004 (3-May-2012)
rbRTF.pas unit: minor edit for D14 compatibility
Source\inc files added for bridges B, E, M, S to document the list of library files required for compilation with Lite and Eval editions. The PAS files of the demos for those bridges now link to the appropriate INC file, so you can copy and paste the library list into Project Options as needed.
FREE Lite edition available.
RbcAssistant utility improved: correctly flags the selected bridges during installation; correctly installs packages based on presence of BPL file for the database bridge.
4.003 (12-Feb-2010)
Demos improved: BDE and dbExpress. Improved but not perfect yet.
Installer customizes rbdemos\common\uRBSampleData.pas during Setup.
4.002 (10-Feb-2010)
Character set fix for bridges IB Express and SDac, when used with UTF8 database.
The Index-Making and Searching demos for the following bridges have been changed so that you can easily make them work with the Parts table in dbdemos database provided by Embarcadero, or with the rail accident database (downloaded separately), or with the Rubicon Help database: ADO, IB Express, IB Objects. A new unit, rbdemos\common\uSharedDatabaseDetails.pas, holds the shared code for these example programs.
New unit, rbdemos\common\uEmbarcaderoSamples.pas, configured during Setup to point to the Embarcadero sample files
Sample database files are now available on http without subversion:
4.001 (1-Feb-2012)
For Absolute Database, NVarChar is automatically mapped to WideString.
Documentation update.
4.000 (30-Jan-2012)
Rubicon manual includes instructions for using ZMAdmin and RbcAssistant to make all necessary adjustments for easy compilation of Rubicon packages.
ZMAdmin for Rubicon includes a panel that enables quick customization of all package names for all bridges.
New RbcAssistant utility generates dccdpk.bat file based on configuration, both during installation Setup and later, at developer discretion. It can also recompile all packages for you, and install them to the IDE.
Utilities updated for all bridges that have a TTable equivalent.
Demos no longer require the Borland Database Engine.
Many but not all bridges include 64-bit support; awaiting updates from third party vendors.
rbCDS and rbFile units are included in the Rubicon Core package now. Due to the use of rbCDS, Delphi Professional, Enterprise or Architect is required. Searching can be done without TClientDataSet but it is more advanced. Please contact tech support if you need to use Rubicon with Delphi Standard edition.
ZaphodsMap configuration branch changed from HREFTools/Rubicon to HREFTools/Rubicon/cv002. This is relevant during Setup, when running ZMAdmin and when running RbcAssistant.
Two precompiled utilities, Hunt4Packages.exe and RbcAssistant.exe, are code-signed by HREF Tools Corp.
Setup program places Rubicon libraries into registry in order of dependence; this enables Delphi to find all of them when it starts.
Setup program writes correct path to registry under Package Search Path
Uninstall correctly erases registry entries under Known Packages and Package Cache
3.998 (24-Nov-2011)
CodeSite logging is optionally enabled within the IBObjects and IBExpress bridges.
Unicode-Delphi is required now. In the Rubicon Setup, these compilers are no longer active: D07, D09, D11, C11. The compatibility unit, source\d07\Character.pas, is no longer included.
ExMake compiles 64-bit with Delphi XE2
3.997 (21-Nov-2011)
XE2 bridges activated for these vendors: Absolute, DBISAM, ElevateDB
XE bridge (not XE2) activated for Advantage Database Server
Unicode support for those databases that include an NVARCHAR type. For Firebird SQL, please see extra instructions in the user manual.
To activate Unicode support during indexing, set TrbMake.Ansi := False; because the default for indexing is Ansi. Optionally define TrbAccept.Alpha to be the set of characters that you wish to index. By default it will index English A..Z letters. For other lingvos, reference Code Central source; alphabet for Latin-1, Cyrillic, Thai, Arabic, Japanese and Hanzi (Chinese)
The source and packages in this release are officially supported for Delphi 2009+. Nonetheless, as long as you leave things in Ansi mode, the source may also work with older versions of Delphi such as Delphi 7.
This release is available to people with a Rubicon v3 license.
There is no free lite/eval edition.
3.089 (in-house only)
Fix to rbDS.pas for Unicode Delphi with Paradox tables with blob fields.
3.088 (30-September-2011)
This is a transition release. Some aspects of the components already mention Rubicon version 4 but it is NOT the full v4 release. For example, the Delphi IDE palette name for the components is Rubicon 4).
This is a free upgrade for customers with a Rubicon v3 license. There is no free lite/eval for v3.088.
Assembler code has been rewritten to pure Pascal so that we can move forward with 64-bit and FireMonkey development.
The whole package situation has been simplified. There is now one set of DPK files that suit all compilers. The filenames have been changed to anticipate win32 versus win64 platforms. So, for Delphi 7, the compiled BPL package name will end with d07_win32.bpl and for Delphi XE2, it will end with d16_win32.bpl.
All the supporting files that vary by bridge have been renamed to follow a consistent pattern. This includes component resource files (*.r32), component registration files (rbReg_*), and the bridge itself (rbBridge*).
The utility for adjusting DPK files is obsolete. Instead you will be able to quickly edit one INC file per bridge, maximum, to adjust filenames for any third party database.
The database bridges that are active for XE2 in v3.088 are: ADO, AnyDac, BDE, dbExpress, IB Express, IB Objects, DOA, pgDAC, SDac and UniDac.
The compilers that are active in v3.088 are: Delphi 7, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2 win32; C++Builder 2007, C++Builder 2009; C++Builder 2010; C++Builder XE, C++Builder XE2 win32.
Setup bug fixed (access violation during install of bridges for which the prerequisite packages were not on disk)
3.087 (04-May-2011)
FIBPlus bug fixed: FDataSet is not used for TrbCustomWordsFIBLink, because TpFIBQuery is not inherited from TDataSet.
FIBPlusEditors2010 removed from package requirements.
Registration file for FIBPlus fixed (rbRegFib.pas fixed to reference rbFIBp in the uses clause.
3.086 (12-April-2011)
For IBObjects, the TIB_Connection.DefaultNoTrimming flag is set to True during indexing. This is required to prevent IBO from automatically trimming significant symbols from the RBWords field. This resolves the error message about trying to insert duplicate values into the Words or Segwords table.
For FIBPlus, the dependency on FIBDBMidas packages has been removed.
For NexusDB with C++Builder with RAD Studio XE: the missing design package file is included.
For NexusDB in general: v3.08 is now the standard NexusDB version supported by Rubicon. That is the latest on their web site as of 11-Apr-2011.
For CPPBuilder XE: flags are now set to control the destination of OBJ files during compilation within DCCDPK.BAT
The utils\bridges.xml file has been updated with the above changes for FIBPlus and NexusDB. It is available via subversion.
3.085 (10-March-2011)
Fix in rbDS.pas in procedure TrbTextDataSetLink.ProcessField. This is relevant especially for ADO with Delphi 2009+.
3.084 (19-Feb-2011)
Small fix in rbSQL.pas for segmented indices.
Bridges that have support for alternate character sets, including UTF8, can now use that character set for indexing.
ABS (bridge supports Unicode); additional parameter: rbMakeWordsABSLink.Params.Values['VarChar'] := 'WIDESTRING';
ADO tested and bridge does not support Unicode. There is a problem saving UnicodeString to database.
AnyDAC (bridge supports Unicode); additional parameter: ADConnection1.Params.Values['CharacterSet']:='UTF8';
IBX(bridge supports unicode): fixed "EStContainerError Bad size parameter" errors within IBX bridge; additional parameter: IBDatabase1.Params.Values['lc_ctype']:='UTF8'; This feature is available in the Unicode editions of Delphi and CPPBuilder.
Tested DISQLite: problem with incorrect field size identification (not solved for now)
Additional bridges will be supported as time goes on. Please speak up if you need this for a deadline.
Docs\RBManual.pdf updated to include the above details plus a few extra tips.
3.083 (26-Jan-2011)
UIB bridge added.
AnyDac bridge added.
3.082 (02-Dec-2010)
Updated FIBPlus bridge for Delphi XE -- confirmed working with release from Devrace. Includes automatic conversion of parameters to uppercase, as required with that release.
3.081 (24-Nov-2010, 30-Nov-2010)
FIBPlus for Delphi XE -- enabled.
Rubicon Manual updated (Installation chapter).
IBObjects unit (rbIbo.pas) cleared of compiler warnings (Delphi XE).
Small change to progress dialog (rbPrgDlg.pas) for use with datasets with more than MaxInt locations to index.
No exception raised when Words and/or Segwords table needs to be created during Make, for bridges: IB Express, FIBPlus.
RubiconVersion constant set to 3081 via include file.
Cleared some compiler warnings.
3.080 (31-Oct-2010)
PgDAC bridge added.
3.079 (18-Oct-2010)
DBISAM 430 supported as standard now; this version is for Delphi and C++Builder XE.
In the generated BAT files for compiling from source, the dcu output folder path no longer ends in a trailing slash. This had been causing trouble on WinXP with Delphi 2007.
The dcu output folder is now fixed based on the compiler, e.g. source\~dcud15 for Delphi XE.
3.078 (07-Oct-2010)
Following bridges confirmed working with Delphi and C++Builder XE: Absolute, ADO, BDE, dbExpress, DISQLite3, DOA, ElevateDB, ibExpress, IBObjects (TIBO*), NexusDB, SDac, UniDAC.
The bridges remaining to-do for XE are: FIBPlus, DBISAM
3.077 (5-Oct-2010)
DISQLite3 supported by Delphi XE; both design and runtime packages marked IMPLICITBUILD OFF.
IBObjects (TIBO*) v4.9.10 supported for Delphi XE.
3.076 (30-Sep-2010)
NexusDB 3.05.xx is now the standard; older versions are available via the utility for adjusting your packages (AdjustBridgeDPKs.exe).
If you have a recent version of Rubicon (v3.068+), you should have a folder _ControlSVN with two BAT files. These BAT files let you pull new copies of certain non-core files from a subversion repository. Of particular interest: larger sample database files for Access, Paradox, Firebird, etc; and Utils\bridges.xml are all available through Subversion, now.
Deleted unused .pas files which were for bridges relevant to Rubicon v2 with Delphi 7. This means there is less noise in the Rubicon\Source folder.
Fixed dbExpress demos for Delphi XE (fixed uses clause).
Known issue with IBObjects v4.9.10 (TIBO*).
3.075 (27-Sep-2010)
rbFile.pas: compiler warnings cleared.
BAT for compiling utilities has the -I flag (for includes) earlier which works better with Delphi XE
Warning for Vista and Windows 7: if you are NOT Administrator, install somewhere other than "Program Files" if you want the ability to easily modify your files!
BAT file outputs temporary DCU files to source\~dcu folder (no need to specify during install)
Lite license now properly unlocks features such that it is NOT necessary to have the Delphi IDE running.
3.074 (12-Sep-2010)
Does not try to compile the AdoVerify utility unless you install the ADO bridge.
DISQLite3: ALL Delphi packages now have IMPLICITBUILD ON. Previously only the D12 package did.
DISQLite3: Comments added to demos to indicate where to obtain sample data; see also SubVersion BAT files.
During clean install, the default location for ZaphodsMap, will be c:\Documents and Settings\All Users\Application Data\ZaphodsMap\.
Uninstall fully removes Rubicon package location from PATH environment variable.
Uninstall removes D15 and C15 packages.
Extra database bridges working with Delphi XE: NexusDB, IBObjects, SDac
Extra database bridges NOT working with Delphi XE but fine with earlier editions of Delphi: Absolute, DISQLite3, DOA, ElevateDB, FIBPlus, UniDAC (all are waiting on updates from third party vendors).
No changes to core Rubicon code.
3.073 (09-Sep-2010)
For DISQLite3: one fix (in rbdisqlite.pas) and one optimization (in disqlite3\exmakeu.pas) added.
3.072 (08-Sep-2010)
First public release to support Delphi XE "D15" and C++Builder XE "C15".
For C++Builder: HPP files are included, even in the Lite and Eval editions of Rubicon.
New (non-gui) demo: searching text files on local disk.
Reminder -- Lite and Eval users -- Please compile all Rubicon projects with packages!
No longer shipping Rubicon v2 PAS files for unsupported bridges such as Topaz.
Tested with Delphi build 3890 (RTM)
Tested with Delphi beta build 3886 (same interface as RTM)
Good news for C++Builder users: In earlier editions of Rubicon combined with C++Builder, the Rubicon objects did not appear in the instruments panel. Now, with RAD Studio XE, they do. We checked this specifically with the NexusDB bridge.
Tested with Delphi beta build 3881
3.068 (in-house release)
Tested with Delphi beta build 3875
Installer FINALLY fixed so that it does not crash when you try to install the package of a third-party database bridge for which you have not already installed the prerequisite packages.
Subversion support added; you can now optionally retrieve documentation, demos and database sample files using Subversion.
Database bridges for RAD Studio XE as of v3.068 include: ADO, BDE, dbExpress, IB Express, IB Objects and NexusDB. Support for all the other bridges is still included for the older compilers but needs to be checked by us after RAD Studio is actually on the market.
3.067 (in-house release)
Tested with Delphi beta...
3.066 (in-house release)
Supports RAD Studio XE.
This is NOT a major release of Rubicon, other than adding support for the newest compiler from Embarcadero.
All forms changed from 96 to 120 pixels per inch so that the resulting EXEs look reasonable on Vista, Windows 7, plus XP and other older versions of Windows.
All CFG and DOF files for demo and utility projects have been deleted so that there are no irrelevant defaults available to confuse new users!
The namespace for the ucCharSet unit has been simplified to omit the year-month and only include the company- and product- name, e.g. HREFTools.Rubicon.ucCharSet.
The unit, rbTrial.pas, which is not needed by registered customers, no longer ships to registered customers.
Delphi 7 to Delphi 2007 support confirmed ok.
  • Only users of the evaluation and lite edition must build Rubicon projects with packages.
  • Add Rubicon\Source\D07 to your project search path if you are compiling without a Unicode version of Delphi, i.e. D07 to D12.
Minor fix to rbdemos\ttable\ExParseU.pas and source\rbUtils.pas, relating to the usage of ExtractWordEx given the new charset techniques from v3.062.
Minor fix to TtpCharSet.SetTpCharSet in ucCharSet.pas. The symptom was that searching for short words, such as 'as', yielded 0 results even when the short word was in the Words table.
CharInSet calls have been replaced with calls to new class in new unit, ucCharSet, in order to support WideChar delimiters.
Indexing speed in Unicode Delphi has been increased significantly.
In order to keep support for Delphi 7 and Delphi 2007 a while longer, we are shipping Source\D07\Character.pas which enables those compilers to succeed. (Character.pas was introduced with the Unicode edition of Delphi.) Character.pas will be updated when required. The major problem is that the symbol tables in Delphi 2009-2011 are stored in application resources, but in Delphi 7 these resources are not present. Rubicon core works with Char data and in Delphi 7 those must be AnsiChar. All comparison functions will work with AnsiChar only, but not with WideChar symbols. Bottom line: if you need support for Unicode symbols, please do not try to get it from Delphi 7 or 2007; upgrade your copy of Delphi.
Bug fix: composite and UniCode symbols were not accounted for by SysUtils.UpperCase; Rubicon now calls ToUpper in Character.pas and that works.
Rubicon - Phrase search leading to lock-up in D2009: fixed in rbLogic.pas, function TCompiler.ProcessPhrase. Also fixed bug with Uppercase.
You can control the field order now; it corresponds to rbMatchMaker.FieldNames.
Upon TableName change, rbTextDOALink reconnects to the table (Oracle bridge). Also, on TableName or DataSet change the Reset method is called automatically (all bridges).
DataSet.Active is set to False is set in Reset method.
The following (simpler) code now works:

  rbTextDOALink1.TableName := 'DOA_TEST_TEXT';
  rbWordsDOALink1.TableName := 'DOA_TEST_WORDS';
Units rbDS and rbBase modified such that blobs containing a mixture of text and binary data are indexed.
Installer no longer exits when user selects a bridge that is unavailable for a particular compiler.
dccDPK.bat no longer tries to compile bridges that are unavailable for a particular compiler.
Internally, two key documents are now generated from a single spreadsheet, to avoid typos: bridges.xml and information that the installer uses to know which bridges are available.
All compiler/database bridge combinations have been reviewed. RAD Studio 2010 support is as complete as possible now.
C++Builder install runs automatically.
NexusDB 3.01 bridge packages added for C++Builder 2010
dccUtilities.bat improved for C++Builder 2010
C++Builder 2009 and 2010: removed rbTrial unit from DPK for registered customers.
Hunt4Packages utility updated to support C++Builder 2009 and 2010.
Fixed bugs in rbdisqlite unit that caused incorrect indexing and wrong TrbCustomTextDISQLLink.GotoLocation behavior.
Modified units: rbdisqlite.pas and exsrchu.pas (from the DISQLite3 demo)
Known issue: does not install into trial version of Delphi
Known issue: manual install required for use with C++Builder
New bridge: FIBPlus. Packages are included for Delphi 7, 2007, 2009, 2010.
DBISAM v4.29 now supported by default (was 4.28); both bridges.xml and the DPK files have been changed to reflect this new library number for DBISAM. DBISAM package added for Delphi 2010.
Minimum word-field length changed from 5 to 14; the default length remains 20.
Additional Pascal source files included in free edition: rbDOA, rbSDacBridge, rbFibP, rbCDS. (rbSDac renamed rbSDacBridge to avoid conflict with unit of same name in ReportBuilder.)
SDac demo files improved
DISQLite3 packages added for Delphi 2010.
Minor improvements to the user manual.
The BAT file for compiling the ADOVerify utility now includes enough library names to compile with a FREE edition of Rubicon.
Includes ElevateDB packages for Delphi 2010.
New bridge: SDAC
Free/Lite/Evaluation version was missing some source files for people using third-party bridges. For example, for Absolute Database, the following files are included: rbRegAbs.pas, rbAbs.pas, and the .r32 file with the component icons.
For bridges that you do not select during installation, the above .pas and .r32 files are deleted to simplify the directory contents a little for you.
ADO: added support for additional datatype, ftWideMemo, in unit rbDS.pas
New bridge: Absolute Database
Major improvement: support for Chinese and other lingvos whose words use characters above #255. The main changes were in slExpression. Delphi 2009 and 2010 have Unicode strings and chars support. Nonetheless, all string processing functions (like Uppercase, CharInSet and so on) truncate Unicode strings and chars to Ansi strings and chars. Also "set of char" has max length 255 elements and cannot be used for Unicode-strings handling. The CharInSet-function had been frequently used in slExpression search logic. We changed the code to use our own CharInSet-mechanism. This will help Chinese and any lingvo which has symbol codes greater than 255.
To be clear: earlier versions of Rubicon 3 used Unicode strings but did not support Chinese and most other lingvos. Many thanks to the customer who brought this to our attention.
We are still working on this issue... it appears that some but not all Unicode/Chinese issues have been resolved ... trying to reproduce issue using Chinese database, with ADO.
Syntax fix in Oracle DPK for Delphi 7
Minor change in rbMake.pas, moving 2 fields from Private to Protected
Syntax fix in bridges.xml
New icons for all bridge components
Delphi 2010 packages added for Nexus and UniDAC
Known issue with bridges.xml
Better C++Builder support within RAD Studio.
New bridge: ElevateDB -- with demos
Slightly updated user manual
New bridge: ElevateDB -- without demos
Demos included for DISQLite3.
Supports Delphi 2010 and C++Builder 2010
New property named AboutLicense displays information about your license. This should be helpful to evaluation and lite users who want to know what the exact limitations are.
Easier for beginners.... during install, all demo cfg files are modified so that they will compile with packages for your Delphi compiler.
Lite and evaluation licenses supported. Find free setup program here and obtain license here.
RubiconFree package designed to be compatible with other products from HREFTools (so you can install more than one into the Delphi IDE). Specifically what this means is that the units in that package have a unique namespace, HREFTools.Rubicon.rel200908.
Lite word-count limit changed from 500 to 1500 words.
DISQLite3 bridge added.
NexusDB: v3.0.1 is the default bridge now; for other variations, run AdjustBridgeDPKs. Details are in the manual.
Setup program is code-signed (by HREF Tools Corp.) which implies that the file should be easier to download and run on Vista.
Setup looks in all plausible locations to find your database bridge packages (e.g. Nexus, DBISAM, etc.) and should get the moresrcdir setting exactly right in the custom dccdpk BAT file .... so that you do not need to edit it at all after installation.
LIKE searches improved.
rbLogic, rbUtils units improved regarding wildcard searches.
New utility: Packages\Hunt4Packages.exe helps you quickly search all plausible locations for a package. Can be used to assist with installation of ANY Delphi component package, including Rubicon. The classic error that this assists with is: Fatal: required package ___ not found.
Installer adds source\inc path to Delphi Library Search path, in addition to source.
Installer omits trailing slash when writing moresrcdir= into your customized dccdpk BAT file. However the Installer only finds packages (e.g. NexusDB packages) when the DCP and BPL files are in the same folder. That will work better in the next round.
Setup remembers your choice for DOA and DISQLite3 bridges ( it had reversed them! ).
Not available as free trial.
rbSearch and rbUtils units improved for wildcard searching.
No compiler warning for TrbSearch.Create(self);
Icon file for IBObjects added (rbIBO.r32).
Icon files for DBISAM and Nexus found; you should now have rbDBISAM.r32 and rbNX.r32 in the Source folder after installing.
Minor changes for Interbase Objects; not yet passing all tests for Delphi 2009.
The dccdpk.bat files created during Setup no longer include lines to compile unselected bridges. For example, if you do not choose to install the ADO bridge, the BAT file omits lines for compiling ADO packages.
AdjustBridgeDPKs utility uses a larger font!
Setup no longer overwrites an existing bridges.xml file (which saves variations such as Nexus V2 for AdjustBridgeDPKs).
No source shipped for AdjustBridgeDPKs (as it does not compile without several of our other components).
DBISAM support added
IBO status: beta 4.9.4 not passing our tests yet
If you make changes to bridges.xml to support a vendor variation, please send those to us so that we can build that in as an automatic choice going forward.
Generation of BAT file for compiling the utilities fixed (issue in setup program).
Running: WebHub-v3.287 compiled with d29_win64 on Microsoft-IIS/10.0,
Sun, 14 Apr 2024 08:15:58 UTC
Session 1001, 0 pages sent to CCBot/2.0 ( at;
Time to produce this page: 16msec.