English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • ID Document
  • Gestione Errori

Get Failed Constraint

funzione copia link

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

IDConstraintDefinition cd = null // Il controllo fallito...
// 
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), ??, ??)
    }
  }
}
I tipi di controlli automaticamente definiti sono:
  • 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

Vedi Anche

  • Save To DB (funzione)
  • On Database Error (evento)
  • ID Constraint Definition

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum