Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Delphi 6 e primi approcci con access

    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

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Try...except oppure OnPostError

    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    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 ?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Esempio di gestione OnPostError e altri suggerimenti...

    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.
    codice:
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.