Scopo
Questa funzione ritorna un oggetto di tipo IDConstraintDefinition che indica quale controllo sul documento non è andato a buon fine. Solitamente si usa all'interno dell'evento OnDatabaseError di un pannello Document Oriented, oppure subito dopo aver lanciato la SaveToDB quando essa fallisce.
Tramite le proprietà dell'oggetto IDConstraintDefinition è possibile conoscere più approfonditamente le circostanze dell'errore ed agire di conseguenza.
Sintassi
//
cd := Document.GetFailedConstraint()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
La funzione ritorna un oggetto di tipo IDConstraintDefinition che rappresenta l'ultimo controllo fallito su quel documento. Può ritornare Null Object se il documento non ha avuto problemi di salvataggio, oppure se il problema non è di quelli rilevati dai controlli predefiniti.
Esempio di codice
// Fired when a database error occurs during a commit operation
// ************************************************************
event Prodotto2.Prodotto.OnDatabaseError(
inout boolean Cancel // TRUE: does not continue to update records (default), FALSE = conti...
inout boolean Skip // TRUE = do not show standard error message, FALSE = show standard e...
int ErrorNumber // Error number as returned from database
string ErrorMessage // Error message as returned from database
int PanelOperation // See Panel Operation Value List
IDDocument Document // Document that failed saving (can be null)
)
{
// Se c'è un errore di salvataggio, vediamo cosa è successo...
if NOT(Document IS Null Object)
{
IDConstraintDefinition cd = null // Il controllo fallito...
//
cd := Document.GetFailedConstraint()
//
// Se un controllo è fallito
if NOT(cd IS Null Object)
{
// Scrivo nel debug per dire cosa è andato storto
EsempiDO.DTTLogMessage(cd.ID, ??, ??)
EsempiDO.DTTLogMessage(cd.Tag, ??, ??)
EsempiDO.DTTLogMessage(cd.Message, ??, ??)
EsempiDO.DTTLogMessage(cd.SQL, ??, ??)
EsempiDO.DTTLogMessage(cd.DDName, ??, ??)
EsempiDO.DTTLogMessage(ToString(cd.Type), ??, ??)
EsempiDO.DTTLogMessage(ToString(cd.NeedRecord), ??, ??)
}
}
}
- Controllo unicità chiave primaria (PK).
- Controllo unicità chiavi alternative (AK).
- Controllo esistenza record correlati (FK-out) durante insert o update.
- Controllo esistenza record correlati (FK-in) durante cancellazione.
Ultima modifica: 22/09/2021 / Validità: da 6.9.3160