Icon External Modules

External modules can used to extend the functionality of ElevateDB to external code in the form of DLLs. The functionality that can be extended via external modules includes:

FunctionalityDescription
Procedures and FunctionsA procedure or function can be defined to use an external module for its implementation via the EXTERNAL NAME keywords in the CREATE PROCEDURE or CREATE FUNCTION statements.
Text IndexingText indexing can be customized for a given index by specifying an external module for the text filtering via the MODULE keyword in the CREATE TEXT FILTER statement, and/or by specifying an external module for the word generation via the MODULE keyword in the CREATE WORD GENERATOR statement. Please see the Text Indexing topic for more information.
MigrationMigrators used by ElevateDB to migrate databases from external data sources use external modules to provide their implementation via the MODULE keyword in the CREATE MIGRATOR statement. Please see the Migrating Databases topic for more information.

Creating External Modules
External modules can be created in any language that can generate a DLL (Dynamic Link Library) with a C-style calling convention, which is the standard calling convention for DLLs under Windows. In addition, ElevateDB provides template projects for the various types of external modules in every specific compiler or IDE that it supports. Please see your product-specific manual for more information.

Information Although all external modules in ElevateDB are DLLs, each type of external module has a different set of calling conventions and identifies itself differently so that ElevateDB can verify whether the proper type of external module is being used with the proper type of functionality in ElevateDB.

Installing External Modules
In order to use an external module in ElevateDB, you must make sure that the module is registered in the current configuration file by using the CREATE MODULE statement. You can verify that this is done by using the following SELECT statement on the special system-defined Configuration Database:

SELECT * FROM Modules

If the rows returned from the above query include the module that you wish to use with ElevateDB, then external module has been registered successfully in the configuration file. Please see the Architecture topic for more information on the configuration file.

Once an external module has been registered correctly, it can then be used with ElevateDB with procedures and functions, text indexing, and/or database migration.
Image