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: |