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

    Insert lento tabella access

    Buongiorno a tutti, è la prima volta che scrivo in un forum e spero di non commettere errori madornali. Scusate fin d'ora altrimenti.
    Spero che qualcuno possa aiutarmi a risolvere un problema. Devo copiare circa 5000 record in una tabella access usando vb 2010.
    L'inserimento sono riuscito a farlo. Il problema è che ci mette alcuni minuti. Se faccio la stessa operazione dal db con una semplice query di accodamento impiego circa 2 secondi. qualcuno potrebbe spiegarmene il motivo?
    il codice che ho creato è questo:
    'UPDATE Tabella TAGLI Dim TAGLI AsNewOleDbDataAdapter("SELECT * FROM 10_20_TAGLI_NEW", xc)
    Dim CORREZIONI AsNewDataSet TAGLI.Fill (CORREZIONI, "10_20_TAGLI_NEW")
    Dim builder1 AsOleDbCommandBuilder = NewOleDbCommandBuilder(TAGLI)
    TAGLI.InsertCommand = builder1.GetInsertCommand
    Dim Tagli_New AsDataTable = CORREZIONI.Tables("10_20_TAGLI_NEW")
    Dim data AsDate = DateTime.MinValue
    data = Nothing
    Try
    For i1 = 1 To Numero_Barre
    For i2 = 1 To BODY_XML(i1).Tot_cut
    Tagli_New.Rows.Add(NewObject() {......})
    Next
    Next
    TAGLI.Update(Tagli_New)

    La tabella ha 58 campi. Grazie per la pazienza

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    51
    Ciao!

    Quando ho dovuto interfacciarmi con un DB Access da VB.NET, ho sempre utilizzato questa guida
    Il codice per la connessione al database non mi ha dato nessun problema, magari puoi prenderlo da lì ed adattarlo al tuo scenario.

    E poi: hai provato ad eliminare il "Try"? Le eccezioni possono rallentare notevolmente il programma!

    Spero di esserti stato d'aiuto!

  3. #3
    Quote Originariamente inviata da mauro152 Visualizza il messaggio
    Buongiorno a tutti, è la prima volta che scrivo in un forum e spero di non commettere errori madornali. Scusate fin d'ora altrimenti.
    Spero che qualcuno possa aiutarmi a risolvere un problema. Devo copiare circa 5000 record in una tabella access usando vb 2010.
    L'inserimento sono riuscito a farlo. Il problema è che ci mette alcuni minuti. Se faccio la stessa operazione dal db con una semplice query di accodamento impiego circa 2 secondi. qualcuno potrebbe spiegarmene il motivo?
    il codice che ho creato è questo:
    'UPDATE Tabella TAGLI Dim TAGLI AsNewOleDbDataAdapter("SELECT * FROM 10_20_TAGLI_NEW", xc)
    Dim CORREZIONI AsNewDataSet TAGLI.Fill (CORREZIONI, "10_20_TAGLI_NEW")
    Dim builder1 AsOleDbCommandBuilder = NewOleDbCommandBuilder(TAGLI)
    TAGLI.InsertCommand = builder1.GetInsertCommand
    Dim Tagli_New AsDataTable = CORREZIONI.Tables("10_20_TAGLI_NEW")
    Dim data AsDate = DateTime.MinValue
    data = Nothing
    Try
    For i1 = 1 To Numero_Barre
    For i2 = 1 To BODY_XML(i1).Tot_cut
    Tagli_New.Rows.Add(NewObject() {......})
    Next
    Next
    TAGLI.Update(Tagli_New)

    La tabella ha 58 campi. Grazie per la pazienza
    Grazie mille per la risposta.
    Ho provato a togliere il try ma il risultato non cambia. Ho anche guardato il link che mi hai inviato ma non mi sembra di fare una cosa completamente diversa da quelle istruzioni. L'unica cosa diversa è che aggiungo un record con un'unica istruzione anziché passare campo per campo con il databindings.
    Ho anche l'impressione che il programma rallenti ad ogni passaggio se per esempio lancio la procedura più volte.......

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Anch'io ho lo stesso problema per le inserti e per i comandi SQL di update,su android si risolve tantissimo facendo una transazione col commit finaleche scrive tutto in modo velocissimo esiste una funzionalità del genere in .NET?
    grazie

  5. #5
    Perché non eseguì direttamente lo state mente sql con una execute invece di inserire i record uno ad uno?

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