Scopo
Restituisce il testo SQL dell'operazione che ha generato un errore sul database. La proprietà OffendingCommand viene valorizzata solo nei seguenti casi:
- L'apertura di una nuova connessione tramite la procedura OpenConnection.
- La chiamata di una StoredProcedure sul database.
Sintassi
//
Comando := Database.OffendingCommand
Quando letta
Restituisce il testo SQL dell'ultima operazione, tra quelle elencate nel paragrafo Scopo, che ha causato un errore. I possibili valori della proprietà sono: la stringa "OPEN" nel caso di errore durante la OpenConnection, il nome della stored procedure qualora quest'ultima causi un errore durante la sua esecuzione, il testo della query SQL che ha generato l'errore nel caso di stored procedure eseguita lato client (vedi il flag CompilaLatoClient nella videata delle proprietà della Stored Procedure).
Quando scritta
L'operazione di scrittura ha l'unico effetto di modificare il valore della proprietà ma non ha effetto sul comportamento del sistema.
Esempio di codice
// Esegue una query errata sul db
// ******************************
public void ErroriDB.EseguiQuery()
{
// Svuoto i campi a video
Dati.TestoErrore := Null String
Dati.NumeroErrore := Null Number
Dati.OffendingCommand := Null String
//
// Svuoto gli errori del database
NorthwindDB.ClearErrors()
//
// Apro una nuova connessione... il DB non si trova in E: quindi l'operazione
// dà errore
NorthwindDB.OpenConnection(Empty String, Empty String, Provider=Micros-
oft.Jet.OLEDB.4.0;Data Source=E:\\nwind.mdb;Persist Security Info=False)
//
// La Open Connection non genera eccezioni. Qualora ci sia un errore viene
// valorizzata la variabile Error Message.
// In questo caso leggo l'errore e lo mostro a video
if NorthwindDB.ErrorMessage <> Empty String
{
Dati.TestoErrore := NorthwindDB.ErrorMessage
Dati.NumeroErrore := NorthwindDB.ErrorNumber
Dati.OffendingCommand := NorthwindDB.OffendingCommand
}
}
- La procedura ClearErrors viene sempre chiamata dal sistema al momento dell'apertura di una connessione al database. Quindi non è possibile ottenere informazioni riguardo gli errori ottenuti in richieste HTTP precedenti a quella attualmente servita dato che il sistema chiude sempre tutte le connessioni dopo aver inviato l'HTML al browser.
Ultima modifica: 25/10/2016 / Validità: da 7.1.3300