Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: ADO è lento?

  1. #1
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    ADO è lento?

    In Access, sto usando ADO per effettuare modifiche sui record di un database via codice VBA:

    Ho fatto una form con una listbox che visualizza il contenuto di una tabella. In questa form ci sono pulsanti per aggiungere e modificare i record della listbox.
    Ogni pulsante apre un'altra form in WindowMode acDialog, per cui il codice della form chiamante si ferma fino a quando la form di modifica/aggiunta record non viene chiusa.

    Nella form di modifica/aggiunta ha dei controlli non associati in cui raccogliere i dati, e routine ADO per aggiungere record o per modificare (come nell'esempio):
    codice:
          rst.Open "Agenzie", cnn, adOpenKeyset, adLockOptimistic
          rst.Find "idAgenzia = " & Me.idRec
          If rst.EOF Then
            Beep
            MsgBox "Record non trovato!", vbCritical
          Else
            rst!txtNomeAgenzia = Me.txtAgenzia
            rst!txtIndirizzo = Me.txtIndirizzo
            rst!txtLocalita = Me.txtLocalita
            rst!txtProvincia = Me.txtProvincia
            rst!txtTelefono = Me.txtTelefono
            rst!txtCellulare = Me.txtCellulare
            rst!txtFax = Me.txtFax
            rst!txtEmail = Me.txtEmail
            rst!txtPIVA = Me.txtPartitaIva
            rst!memNote = Me.txtNote
            rst.Update
          End If
    A questo punto (dopo la modifica o l'aggiunta di un record e la conseguente chiusura della form di editing) la form chiamante esegue una Requery della listbox...
    Ma non succede nulla! La listbox non viene aggiornata.
    Ma se chiudo la form e la riapro, le modifiche ci sono!

    Allora ho aggiunto un pulsante per fare la requery manuale della listbox: la modifica al record oppure il nuovo record compaiono dopo qualche secondo!
    ADO è così lento? Mi serve che le modifiche siano subito visibili, o perlomeno che io non possa fare nulla finchè le modifiche siano disponibili (e ovviamente senza usare il pulsante che fa la requery). Avete qualche suggerimento?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di seclimar
    Registrato dal
    Sep 2002
    Messaggi
    21,042
    dovresti postare nel forum di PROGRAMMAZIONE
    o visual basic
    o asp..
    o cose simili

  3. #3
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Ci ho pensato dopo. Ho già contattato i moderatori.

  4. #4

  5. #5
    Prova ad usare UpdateBatch al posto di Update

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Purtroppo non cambia nulla.

  7. #7

  8. #8
    e usando una insert into?
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  9. #9
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Avevo provato. Ma non faceva differenza tra usare stringe SQL o metodi dell'oggetto recordset...

  10. #10
    Membro Junior
    Registrato dal
    Oct 2002
    Messaggi
    23

    io ti posso dire ciò che vuoi sia su ADO che DAO.

    ciao,

    il discorso è semplice:
    DAO (su VB) è molto più prestazionale in quanto è sottoposto a funzioni e regole inferiori rispetto ad ADO.
    Infatti con DAO puoi lavorare direttamente sul database senza passare dalla msjetoledb40.dll.
    ADO ti impone invece di generare una stringa di connessione che, obbligatoriamente per ACCESS (se non vuoi passare da ODBC) deve usare la msjetoledb40.dll.
    Tuttavia ADO è superiore a DAO per quanto riguarda le funzionalità e la flessibilità, infatti attraverso ADO è molto + semplice gestire transazioni,e fare molte altre cose che su DAO non ci sono (tipo la gestione del DB indipentemente dal tipo: ORACLE,ACCESS,MYSQL,POSTRGRES,ECC) senza cambiare una riga di codice.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.