Newsgroup: it.comp.appl.access
Titolo: eliminare record correlati a catena ma dietro condizione

Sarà l'ora tarda, sarà che ho passato tutta la domenica su questo db, vado a
letto lasciandoVi un quesito, forse semplice ma in questo momento mi sembra
di non saper leggere e scrivere.
Problema: (esempio): ho una tabella con le case automobilistiche di
automobili (idcasa, casa), un'altra con i tipi di auto prodotti(idtipo,
nometipo, idcasa) ed una che riassume i dati di chi guiderà o ha guidato
quelle auto (idguida, idtipo, nomepilota, dataguida).
Ora, le tabelle sono collegate con integrità referenziale. Se elimino una
casa costruttrice automaticamente spariscono anche i suoi modelli e tutte le
guide effettuate su quel modello. Il mio problema è poter eliminare solo le
guide da una data in poi, ad esempio da domani in avanti. Ho già la query di
eliminazione in base a data e tipo, il problema è che non riesco a far sì
che l'eliminazione (filtrata su data) diventi automatica nel momento in cui
da una maschera elimino la casa costruttrice se mantengo l'integrità
referenziale tra la casa costruttrice e le guide effettuate sui suoi
veicoli.
...mi sa che è meglio se vado a dormire, magari sogno la soluzione!
Buona notte a tutto il NG!
PS. grazie a Roberto da casa per aver ricordato le regole del ng, non scrivo
spesso ma leggo molto e l'avere un ng fluido e senza divagazioni più o meno
polemiche lo rende molto più interessante.
Beppe
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Buona notte a tutto il NG!
Perchè non lasci perdere l'integrità e scrivi un po' di codice e query
appropriate per fare quello che vuoi?
Antonio

Antonio Biso ha scritto:



Secondo me c'è un errore concettuale di base. Come fa Beppe ad eliminare
la casa costruttrice senza eliminare anche tutti i record correlati?
Se si vuole eliminare assieme alla casa solo una parte dei record
correlati, quelli che rimangono a cosa punteranno?
O si eliminano tutti, o se ne elimina solo una parte però mantenendo anche
il record della casa costruttrice.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Namor
Ma sai che c'hai ragione?
Antonio


Proseguo nella follia dell'ora tarda... Namor, i record che rimangono dopo
l'eliminazione dlla casa costruttrice ovviamente sono orfani ma questo non
impedisce che esistano. Se uno ha fatto un viaggio con la macchina della
casa x anche se questa fallisce il viaggio fatto resta.
Come accennavo il problema l'ho risolto con una query di eliminazione
filtrata sulla data (>=date()) e sul tipo di macchina. Il che funziona,
lasciando perdere integrità referenziale ecc... poi elimino la casa
costruttrice e tutti i suoi tipi di auto, fermo restando il vincolo data.
Mi chiedevo solo se questo si potesse fare anche mantenendo le correlazioni
a catena fra i record, ma evidentemente vaneggiavo ;)
Grazie a tutti!


 Beppe
Di solito si aggiunge un campo nella tabella delle case costruttrici in
cui si scrive un bel "FALLITA!", invece di eliminare fisicamente il
record, e si usa per filtrare gli elenchi in modo che le "fallite" non
compaiano più nelle caselle combinate.
Anche perchè il viaggio fatto ti resta in tabella, ma non saprai più per
che casa l'hai fatto quando ne avrai aliminate più di una.
Comunque, per rispondere alla tua domanda, non c'è modo di eliminare la
casa costruttrice senza eliminare anche tutti i record correlati, se
l'integrità referenziale è abilitata.


 ha scritto nel messaggio
news:c3or2r$6bc$1...@news.newsland.it...

Questo caso per esempio capita anche nel classico applicativo di magazzino.
Se un cliente o un fornitore cessa di avere rapporti con la ditta, è
sbagliato eliminarlo fisicamente perchè tutti i movimenti pregressi non
avrebbero più un collegamento.
Usando un flag booleano garantisci la presenza del record che però non
verrà più gestito nelle nuove transazioni
Antonio