Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Fabio - Aprile 13, 2012, 10:42:50 pm

Titolo: TDBNavigator ed errore su eliminazione record
Inserito da: Fabio - Aprile 13, 2012, 10:42:50 pm
Come mai se usando il TDBNavigator elimino un record quando applico le modiche mi esce l'errore "no delete query specified and failed to generate one"?

Anche nell'esempio su http://www.lazaruspascal.it/esempi/Sqlite.zip fa lo stesso errore.
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: Fabio - Aprile 14, 2012, 04:17:07 pm
Ovunque cerchi non trovo soluzioni, che voi sappiate non esiste una documentazione decente di questi controlli da qualche parte?

Poi il TDBNavigator agisce direttamente sul TSQLQuery oppure serve intercettare l'evento AfterDelete e poi passare l'istruzione di eliminazione?

Nell'evento AfterDelete poi ho a disposizione un oggetto Dataset che però non so che farmene e della documentazione non ne trovo traccia.

Ogni spunto è gradito, grazie.
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: xinyiman - Aprile 15, 2012, 03:53:25 pm
Che io sappia agisce sul dataset e quindi il dataset deve essere modificabile! Inoltre devi poi applicare la modifica con il pulsante verde
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: Fabio - Aprile 15, 2012, 09:13:56 pm
Ma il tuo esempio sopra a te come si comporta? a me quando clicco il "-" va in errore come scritto sopra.
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: xinyiman - Aprile 16, 2012, 11:40:38 am
Anche io ho il problema. Sul tuo 3d (sul forum ufficiale) ho aggiunto il link all'esempio così hanno un riferimento dell'errore!
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: xinyiman - Aprile 16, 2012, 01:28:01 pm
Hanno risposto sul forum ufficiale.
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: Stilgar - Aprile 16, 2012, 01:35:48 pm
hihi, o metti il link al 3d o posti la risposta in questo di forum ;)
Non ho mica trovato, ne la domanda ne la risposta  :P
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: Fabio - Aprile 16, 2012, 01:38:50 pm
Link al thread:
http://www.lazarus.freepascal.org/index.php/topic,16626.0.html

Risposta data:
Citazione
SQlQuery1 has UpdateMode set to upWhereKeyOnly but you do a 'select Nome FROM T_Prova;' which does not contain a key. Change SQL to 'select * FROM T_Prova;' or change UpdateMode to upWhereChanged or upWhereAll.

Appena riesco provo sul mio codice e metto il risultato.
Titolo: Re:TDBNavigator ed errore su eliminazione record
Inserito da: Fabio - Aprile 16, 2012, 01:43:42 pm
Confermo quanto suggerito, bastava aggiungere il campo indice alla SQL passata per non far uscire l'errore.