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

    [Access]Query UPDATE Importare dati 2 tabelle

    Ciao a tutti.
    Sto ultimando un piccolo progettino in vb.net che si appoggia su un db access per la gestione di un archivio.
    Tra le opzioni del mio programma ho previsto la possibilità di esportare e importare i dati del mio db tramite file XML che creo io a "mano".
    Il mio dubbio riguarda l'importazione dei dati. A livello di codice e di sql sono riuscito a fare la cosa, ma mi sembra un po' macchinosa.
    Per esemplificare, nel mio DB ho la tabella clienti, collegata con una relazione 1-molti alla tabella ordini.
    Io ho risolto con 3 query, eseguite più volte da un ciclo.
    1) inserisco con un UPDATE i dati di 1 cliente nella tabella Clienti
    2) recupero l'ID_Cliente (chiave primaria) dell'ultimo cliente inserito
    3) inserisco con un'altro UPDATE i dati degli ordini, usando ID_Clienti per mantenere la relazione 1 a molti con il cliente referente.

    Ora, vi chiedo, c'è un modo più semplice per fare sta cosa, con una sola query?
    A livello di codice, con vb.net uso i tableadapter e i datatable, che poi eseguono le operazioni vere e proprie sul db, però magari scrivendo meglio le query si può fare di meglio..

    Ciao e grazie!

  2. #2
    Beh, in attesa di ricevere qualche risposta/dritta, ho bene o male risolto da me.
    Ho riscritto il metodo di importazione, che adesso viene richiamato da un ciclo 1 volta a "cliente".
    Ho riscritto le query non usando il tableadapter ma facendo eseguire direttamente le operazioni dal oledbcommand di Vb.net.
    In pratica:
    1) 1 query inserisce i dati del cliente
    2) la 2 query recupera l'ID del cliente
    3) la 3 query, ripetuta in un ciclo inserisce gli n ordini collegati.
    Prima, con i tableadapter per far si che le modifiche al db venissero eseguite bisognava chiudere la connessione e riaprirla, invece con l'esecuzione delle query da parte del command, non occorre.
    Prima, per importare 235 clienti e quasi 5000 ordini, il programma impiegata 25 secondi, ora
    ne impiega meno di 15.. Direi che può bastare così..
    Per inserire alcuni dati ho usato i parametri, perché se ho un cognome tipo d'andrea, l'apice può darmi problemi, giusto? Ci sono alternative?
    Ciao!

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.