Name

*DEFAULT-DATABASE* — The default database object to use.Variable

Value Type

Any object of type database, or NIL to indicate no default database.

Initial Value

NIL

Description

Any function or macro in CLSQL that operates on a database uses the value of this variable as the default value for it's database parameter.

The value of this parameter is changed by calls to connect, which sets *default-database* to the database object it returns. It is also changed by calls to disconnect, when the database object being disconnected is the same as the value of *default-database*. In this case disconnect sets *default-database* to the first database that remains in the list of active databases as returned by connected-databases, or NIL if no further active databases exist.

The user may change *default-database* at any time to a valid value of his choice.

Caution

If the value of *default-database* is NIL, then all calls to CLSQL functions on databases must provide a suitable database parameter, or an error will be signalled.

Examples

        (connected-databases)
        => NIL
        (connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
        => #<CLSQL-MYSQL:MYSQL-DATABASE {48385F55}>
        (connect '(nil "template1" "dent" nil) :database-type :postgresql)
        => #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {483868FD}>
        (connect '("dent" "newesim" "dent" "dent") :database-type :mysql :if-exists :new)
        => #<CLSQL-MYSQL:MYSQL-DATABASE {48387265}>
        *default-database*
        => #<CLSQL-MYSQL:MYSQL-DATABASE {48387265}>
        (disconnect)
        => T
        *default-database*
        => #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {483868FD}>
        (disconnect)
        => T
        *default-database*
        => #<CLSQL-MYSQL:MYSQL-DATABASE {48385F55}>
        (disconnect)
        => T
        *default-database*
        => NIL
        (connected-databases)
        => NIL
      

Affected By

connect
disconnect

See Also

connected-databases

Notes

Note

This variable is intended to facilitate working with CLSQL in an interactive fashion at the top-level loop, and because of this, connect and disconnect provide some fairly complex behaviour to keep *default-database* set to useful values. Programmatic use of CLSQL should never depend on the value of *default-database* and should provide correct database objects via the database parameter to functions called.