DBC OPENDATA

From Lianjapedia
Jump to: navigation, search

Purpose

Database events are triggered by certain database operations

See Also

ADATABASES(), ALTER TABLE, ADD TABLE, ALTER INDEX, CLOSE DATABASES, CLOSE TABLES, COMPILE DATABASE, CREATE DATABASE, CREATE TABLE, CREATE INDEX, CREATE VIEW, DATABASE(), Database Events, DBUSED(), DISPLAY DATABASE, DISPLAY INDEXES, DISPLAY TABLES, DROP DATABASE, DROP INDEX, DROP TABLE, GETENV(), LIST DATABASE, LIST INDEXES, LIST TABLES, OPEN DATABASE, PACK DATABASE, REBUILD DATABASE, REINDEX DATABASE, SET AUTOCATALOG, SET EXCLUSIVE, USE

Description

The DBC_OPENDATA database event is triggered when a database is opened and runs dbc_opendata.prg (.dbo compiled/runtime) if it exists. The code is run before the database is actually opened. Databases are opened using the OPEN DATABASE <database-name> command.

The following parameters are passed to the dbc_opendata program:

Parameter Description
<expC> The database name
<expL1> Specifies whether the database is being opened exclusively, .T. or shared, .F.
<expL2> Specifies whether the NOPUDATE keyword was included on the OPEN DATABASE command, .T. or not, .F.
<expL3> Specifies whether the VALIDATE keyword was included on the OPEN DATABASE command, .T. or not, .F.

If the dbc_opendata program returns .F., the database is not opened, if .T., the open operation continues.

Note: OPEN DATABASE also triggers the loading of the dbc_library (.prg/.dbo) procedure library file if it exists.

Programs associated with database events should reside in the database's directory. These can be created and modified from the Events tab in the Data Workspace when a database is open.

From Lianja v6.3, the DBC_AFTEROPENDATA event is triggered after a database has been successfully opened.

Example

// dbc_opendata.prg
lparameters cName, lExcl, lRo, lValidate
// ...
return .T.