PDA

Visualizza la versione completa : Delphi 6 e primi approcci con access


fantasma313
21-09-2002, 22:17
in un programmino che mi sto costruendo dopo essermi tirato fuori i dati da access e averli messi in "DBEDIT" ho la necessità di modificarli e fin qui nessun prob, ho un bottoccino dove utilizzo questo comando per confermare i cambiamenti a video.

DataModuleForm.ADOQuery.Post;

Il problema nasce quando devo intercettare un errore dal database... esempio ho duplicato una chiave, ho eliminato un campo correlato a un'altra tabella....
sapete dirmi quanl'è il msg che devo intercettare per poter evitare di bloccare il prg e gestirlo quando è possibile?

Esempio in cobol mi testo il ritorno dell'sqlcode per vedere l'esito di una operazione....

Grazie

alka
22-09-2002, 04:52
Beh, il programma (fortunatamente) non si blocca quando avviene un errore, così come succede in Visual Basic (ad esempio), ma viene generata una eccezione gestita da Delphi che per default visualizza una casella di messaggio con la descrizione dell'errore.

Questo permette di evitare che il programma si arresti o termini a fronte di un errore ripristinando una condizione valida, dopo aver notificato la causa dell'errore stesso, che consenta la prosecuzione del programma.

Per intercettare un errore specifico, puoi racchiudere la chiamata al metodo Post all'interno di un costrutto try...except oppure gestire l'evento OnPostError del componente ADOTable.

Ciao! :ciauz:

fantasma313
22-09-2002, 10:54
Grazie della risposta, ma sono all'inizio della programmazione su pc e delphi...
potresti scrivermi un esempio di come gestire l'evento OnPostError del componente ADOTable ?

alka
23-09-2002, 03:20
Eccoti un esempio di implementazione del metodo preposto alla gestione dell'evento OnPostError, generato dal componente ADOTable quando si verifica un errore durante un'operazione di POST (salvataggio) del record.


procedure TForm1.ADOTable1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
ShowMessage('Errore durante la POST');
Action := daAbort;
end;

Se non viene definito questo evento, Delphi si "prende la briga" di visualizzare un messaggio predefinito gestendo autonomamente l'errore. Questo metodo consente di intervenire sul meccanismo di gestione dell'errore intraprendendo un'azione personalizzata quando si verificano problemi di salvataggio di un record (ad esempio, quando si sta salvando un record con un valore duplicato nel campo chiave). In particolare, nel codice si visualizza un messaggio personalizzato ("Errore durante la POST") e si imposta il parametro passato per riferimento Action che indica l'azione da intraprendere successivamente: l'errore potrebbe essere gestito correggendo il record e impostando Action a daRetry, oppure a daFail se vogliamo vedere il messaggio predefinito o a daAbort se abbiamo già avvisato l'utente e desideriamo che l'operazione di post venga abortita senza ulteriori segnalazioni (come nel caso presentato sopra).

Tralasciando un attimo questa problematica, visto che sei agli inizi con Delphi, non ti sembra più conveniente partire da qualcosa di più semplice da apprendere? Almeno per famigliarizzare con i costrutti Pascal e i meccanismi di Delphi...altrimenti rischi di trascorrere il 90% del tempo di realizzazione del progetto a scrivere domande su ogni cosa.

Buon lavoro! :ciauz:

Loading