#DEFINE DVDLOGIN_LOC [Enter password:]
#DEFINE DVDLOGINCAP_LOC [DVD Login]
#DEFINE DATAOPEN_LOC Database opened by
#DEFINE DATACLOSED_LOC Database closed by
#DEFINE NOMOD_LOC "Sorry, you cannot modify this table."
PROCEDURE dbc_BeforeOpenTable(cTableName)
*Just before a table or view is opened. Return .F. to prevent table or view being opened.
IF ATC("ctablename",cTableName)#0 AND UPPER(ALLTRIM(INPUTBOX(DVDLOGIN_LOC,DVDLOGINCAP_LO C)))#"123456"
*IF ATC("operator",cTableName)#0 AND USERNAME#"23456"
* Since this is a sample, we will ignore password, however, you can enforce it by returning .F.
RETURN .F.
*RETURN .T.
ENDIF
ENDPROC
PROCEDURE dbc_OpenData(cDatabaseName, lExclusive, lNoupdate, lValidate)
*Immediately after DBC is opened.
LOCAL lcStr,lcLog
TEXT TO lcStr NOSHOW TEXTMERGE
DATAOPEN_LOC <<SYS(0)>> <<DATETIME()>>.
ENDTEXT
lcLog = FORCEEXT(cDatabaseName,"LOG")
STRTOFILE(lcStr,lcLog,.T.)
ENDPROC
PROCEDURE dbc_CloseData(cDatabaseName, lExclusive, lNoupdate, lValidate)
*Immediately after DBC is opened.
LOCAL lcStr,lcLog
TEXT TO lcStr NOSHOW TEXTMERGE
DATACLOSED_LOC <<SYS(0)>> <<DATETIME()>>.
ENDTEXT
lcLog = FORCEEXT(cDatabaseName,"LOG")
STRTOFILE(lcStr,lcLog,.T.)
ENDPROC
PROCEDURE dbc_BeforeModifyTable(cTableName)
* Just before a table is modified. Return .F. to prevent modification.
IF ATC("ctablename",cTableName)#0
MESSAGEBOX(NOMOD_LOC)
RETURN .F.
ENDIF
ENDPROC
اين كدها در مثالهاي خود ويژوال موجود كه درedit stroed procedures ذخيره و براي امنيت ديتاباس استفاده ميشه