Salve a tutti. ho creato una piccola applicazione con Firebird e i componenti DBExpress di Delphi. L'applicazione non usa una chiave primaria con incremento autoamatico (me l'hanno chiesto così :-\). Ho cercato di gestire l'errore generato nell'inserimento di una chiave primaria duplicata. Ho scritto un evento OnPostError del componente ClientDAtaset e nessun problema... tutto ok:-). Mi manda un messaggio di errore, non inserisce il nuovo record creato in quanto ha una chiave già utilizzata (uso il metodo RevertRecord del ClientDataset per cancellarlo) e tutto va bene.
Il problema mi nasce quando copio le librerie e il programma compilato su una cartella utilizzando Firebird embedded. Praticamente non mi genera l'errore e inserisce nel Dataset il record con la chiave duplicata. Mi spiego meglio. Avendo inserito i classici componenti di visualizzazione (DBEDIT, DBGRID ecc) il record viene inserito nella tabella ma non nel database (immagino che il metodo upplyupdate fallisca). Ma questo nonv a bene nella mia applicazione che dovrebbe comportarsi come in fase di progetto.
Qualcuno può aiutarmi?
Ringrazio anticipatamente.