Next: Database Macros, Previous: Database Interpolation, Up: Relational Database [Contents][Index]
(require 'database-commands)
This enhancement wraps a utility layer on relational-database
which provides:
*commands*
table in database.
When an enhanced relational-database is called with a symbol which
matches a name in the *commands* table, the associated
procedure expression is evaluated and applied to the enhanced
relational-database. A procedure should then be returned which the user
can invoke on (optional) arguments.
The command *initialize* is special. If present in the
*commands* table, open-database or open-database!
will return the value of the *initialize* command. Notice that
arbitrary code can be run when the *initialize* procedure is
automatically applied to the enhanced relational-database.
Note also that if you wish to shadow or hide from the user
relational-database methods described in Database Operations, this
can be done by a dispatch in the closure returned by the
*initialize* expression rather than by entries in the
*commands* table if it is desired that the underlying methods
remain accessible to code in the *commands* table.
| • Database Extension: | ||
| • Command Intrinsics: | ||
| • Define-tables Example: | ||
| • The *commands* Table: | ||
| • Command Service: | ||
| • Command Example: |