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

    aggiornamento simultaneo tabelle padre-figlio

    salve, ho un progetto vb.net in cui ho un dataset con due tabelle e una relazione padre-figlio (caso classico articoli/prezzi-fornitori)

    fino ad ora ho sempre aggiornato il db tramite il metodo update del dataadapter ma adesso ho il problema i mantenere l'integrità referenziale...
    pensavo di usare una transazione, e quindi tramite un ciclo aggiornare prima i dati della tabella padre e poi eventualmente aggiornare/inserire nella tabella figlia, ma come recupero solo i figli modificati relativi al singolo record padre?
    inoltre, in caso di inserimento di un nuovo record nella tabella padre come recupero l'id corrispondente con il quale agganciare i record della tabella figlio nel caso di chiave autoincrement?

    ho cercato parecchio in giro sinceramente ma non ho trovato esempi in questo senso... si parla tanto del modo più opportuno di fare le cose ma da nessuna parte ho trovato come farlo effettivamente.... o per lo meno non con codice "nativo", sono costretto a evitare autocomposizioni, tableadapter, ecc....

    ah, il DB è MySQL...

    grazie in anticipo per il vostro aiuto

  2. #2

    Moderazione

    Il linguaggio di riferimento va indicato anche nel titolo come da regolamento, ora provvedo io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ok grazie, e scusate...

  4. #4
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    Non so se ho realmente capito il problema oppure no.

    ma come recupero solo i figli modificati relativi al singolo record padre?
    Non so come tu abbia strutturato il programma ma nel form di modifica dovresti poter risalire all'ID del record che stai modificando e quindi di conseguenza puoi sicuramente aggiornare tutti i figli di quell'ID.

    inoltre, in caso di inserimento di un nuovo record nella tabella padre come recupero l'id corrispondente con il quale agganciare i record della tabella figlio nel caso di chiave autoincrement?
    Non ti è sufficiente un last insert id() ? Lo applichi alla query di inserimento e passi l'id alla query per l'inserimento nella tabella in relazione.

    Spero di non avrei totalmente frainteso la tua richiesta.

    Ciao

  5. #5
    allora, intanto grazie per l'interessamento... poi per quanto riguarda il problema, si più o meno hai capito, però se ad esempio devo inserire più record "nuovi" nella tabella padre, come posso determinare quali figli appartengono a quali padri? essendo tutto autoincrementato a livello db, nel mio dataset questi valori son tutti nulli, quindi come faccio da codice a sapere cosa abbinare? ho una relazione impostata che funziona in visualizzazione (scorrendo i record padri vedo i record in una datagrid figlia corretti), ma come posso usarla "al contrario"?
    ho provato con getchanges sulla relazione ma non mi sembra funzionare...

  6. #6
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    Quindi tu mi stai dicendo :

    Se io inserisco padri e figli come faccio a sapere chi è figlio di chi ?

    Io solitamente faccio così, creo immediatamente i record padre anche se ancora incompleti dei dati ( popolando la riga con la data di inserimento ad esempio ) in questo modo ottengo l'ID ancor prima di aver compilato l'intero form e posso già abbinarlo ai vari figli che andrò a generare.

    Ovviamente poi dovrai controllare se i record creati sono stati correttamente compilati, in caso contrario dovrai fare una "pulizia del database".

    Tutto però dipende da come tu gestisci il processo di inserimento

  7. #7
    si esatto, il problema è quello, anche perchè io ho non ho un singolo form con il padre, ma un bindingnavigator col quale scorro tutti i padri (con una datagrid per i figli), quindi a seconda dei casi potrebbe verificarsi che non ne venagno inseriti nessuno ma solo modificati, solo inseriti, o entrambe le possibilità... lo stesso per i figli......

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Il programma deve obbligare l'utente a selezionare PRIMA il padre su cui vuole 'lavorare', e qualsiasi INSERT o UPDATE va fatta tenendo l'IDPadre come riferimento.

    Non esistono altre soluzioni.

  9. #9
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    Attendevo il parere di qualcuno con più esperienza... Effettivamente non ci sono altre strade percorribili. In ogni caso io sconsiglio l'uso di oggetti simili in quanto a mio parere danno troppo poco controllo e sopratutto limitano il campo d'azione.

  10. #10
    mmhh.. ok.. mi avete dato una brutta notizia..
    grazie lo stesso per l'aiuto l'interessamento....

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 © 2026 vBulletin Solutions, Inc. All rights reserved.