Domanda sulla gestione di un DB in rete

di il
18 risposte

Domanda sulla gestione di un DB in rete

Il database access che ho realizzato è il mio primo in assoluto, non avevo mai usato access quindi vi chiedo utenti esperti come si comporta il DB access con grossi quantitativi di dati?
Il mio .accdb lo condividero in rete tramite access runtime, inoltre ce la possibilita che si allegino numerevoli allegati all interno del DB è un problema ? che consigli mi date ?

18 Risposte

  • Re: Domanda sulla gestione di un DB in rete

    EgonLaHire ha scritto:


    Il database access che ho realizzato è il mio primo in assoluto, non avevo mai usato access quindi vi chiedo utenti esperti come si comporta il DB access con grossi quantitativi di dati?
    A titolo di chiarimento se hai diviso il tuo applicativo in 2 parti come doveroso fare, hai una struttura definibile FrontEnd(Client) e BackEnd(Server).

    Access di fatto ingloba le 2 parti se e solo se non dividi il prodotto.
    Nel momento in cui lavori con FE-BE non si parla più di Access ma di JET(Engine) in quanto Access
    è solo il CLIENT(Form, Report, macro ecc...)

    Ora JET non è stato progettato per lavorare in rete non è un RDBMS, ovviamente funziona ma ha grossi limiti proprio per la mancata Ottimizzazione del transito dati.
    Le queries ed i Filtri infatti contrariamente a tutti i DatabaseServer, vengono elaborati CLIENT-SIDE, significa che JET invia TUTTO il malloppone generando buon traffico(proporzionale alle dimensioni) e lasciando al CLIENT l'onere di applicazione della WHERE CONDITION o del FILTER.
    Se immaginiamo il tutto applicato alla MULTIUTENZA...

    Altro problema di JET è la questione transazionale, non consente punti di ripristino in caso di corruzione, non consent transazioni nidificate ecc...!

    Personalmente in caso di lavori seri direi che JET non è adatto.

    EgonLaHire ha scritto:


    Il mio .accdb lo condividero in rete tramite access runtime, inoltre ce la possibilita che si allegino numerevoli allegati all interno del DB è un problema ? che consigli mi date ?
    Questo è un problema strutturale.
    Se hai definito il tuo applicativo in modo da fagocitare Allegati hai commesso un'errore, il tuo SERVER esploderà in breve tempo.
    Dovresti vedere la strategia in altro modo, dedicare una cartella nel Server e gestirla come Deposito degli allegati, memorizzando solo il PATH...

    In tutti i casi è difficile definire un elenco di CONSIGLI...
  • Re: Domanda sulla gestione di un DB in rete

    Intatno grazie del aiuto alex
    Io ho diviso il mio database in una parte le tabelle e dal altra le query,maschere etc..
    il problema dei allegati pero non ho idea come gestirlo, quindi il .allegato di access le integra nel suo DB non si crea uno spazio per gli allegati ?
    E poi come e possibile la gestione tramite path in access ?
  • Re: Domanda sulla gestione di un DB in rete

    L'allegato in Access viene inglobato come BLOB, BinaryLargeObject, ma di solito viene incrementata la dimensione per consentirne la lettura...
    In sostanza un allegato da 1M sicuramente incrementerà la sua dimensione.
    Ora se la tua gestione di allegati prevede questo, e sapendo che Access ha un limite fisico(in base alla versione) di 2Gb... va da se che può essere un problema anche solo di APPESANTIMENTO.

    Se tu invece di salvare un File come allegato salvi semplicemente il PERCORSO... del File
    la cosa è risolta.

    Se vuoi scaricarti questi Esempi:


    salva i file e rinominali come RAR, purtroppo è un MIRROR STATICO del mio sito ormai scaduto.

    Ti mostrano come gestire File Esterni.
  • Re: Domanda sulla gestione di un DB in rete

    @Alex ha scritto:


    L'allegato in Access viene inglobato come BLOB, BinaryLargeObject, ma di solito viene incrementata la dimensione per consentirne la lettura...
    In sostanza un allegato da 1M sicuramente incrementerà la sua dimensione.
    Ora se la tua gestione di allegati prevede questo, e sapendo che Access ha un limite fisico(in base alla versione) di 2Gb... va da se che può essere un problema anche solo di APPESANTIMENTO.

    Se tu invece di salvare un File come allegato salvi semplicemente il PERCORSO... del File
    la cosa è risolta.

    Se vuoi scaricarti questi Esempi:


    salva i file e rinominali come RAR, purtroppo è un MIRROR STATICO del mio sito ormai scaduto.

    Ti mostrano come gestire File Esterni.

    Grazie del aiuto alex ma ci ho capito poco a dir la verita
    Non riesco a capire come avviene la gestione del apertura delle esplorazione dei path
  • Re: Domanda sulla gestione di un DB in rete

    Più che farti vedere il Demo non so come aiutarti... nel senso che non capisco se la tua incomprensione è TECNICA o altro...!

    Se nel campo testo salvi il "C:\NomeCartella\NomeFile.Doc" invece che salvare il DOC... sei in linea con quello che dico.
  • Re: Domanda sulla gestione di un DB in rete

    @Alex ha scritto:


    Più che farti vedere il Demo non so come aiutarti... nel senso che non capisco se la tua incomprensione è TECNICA o altro...!

    Se nel campo testo salvi il "C:\NomeCartella\NomeFile.Doc" invece che salvare il DOC... sei in linea con quello che dico.
    Diciamo che il mio problema è di tipo tecnico, non riesco a estrapolare il codice che mi interessa .
    Quello che vorrei fare e di creare una casella di testo associata a un campo collegamento ipertestuale della tabella documento in questione, tramite un evento clik che mi apre l'esplorazione risorse computer dove seleziono il file interessato e lui mi ritorna il path nella casella di testo.
    Ho ricercato numerosi comandi senza esito postivo
  • Re: Domanda sulla gestione di un DB in rete

    Tecnicamente quello che chiedi è di gestire l'oggetto FILEDIALOG, accessibile da Access inserendo nei riferimenti le LIBRERIE di OFFICE, in tal modo avrai l'HELP a disposizione con esempi molto chiari.
    Nel mio demo faccio ricorso alle API, ma visto i passaggi dai 32B ai 64B se non hai un'ottima padronanza del codice lo sconsiglio.

    Il problema di fondo tuttavia è avere una preparazione minimale principalmente per rapportasi in modo tecnico, che significa esporre in modo comprensibile i propri questiti, ma anche avere gli strumenti per comprendere i suggerimenti.

    Io purtroppo, o per fortuna, non sono abituato a dare codice pronto da COPIANCOLLARE, e penso che averto fornito quei riferimenti fosse quanto di più comodo io potessi fare.
  • Re: Domanda sulla gestione di un DB in rete

    @Alex ha scritto:


    Tecnicamente quello che chiedi è di gestire l'oggetto FILEDIALOG, accessibile da Access inserendo nei riferimenti le LIBRERIE di OFFICE, in tal modo avrai l'HELP a disposizione con esempi molto chiari.
    Nel mio demo faccio ricorso alle API, ma visto i passaggi dai 32B ai 64B se non hai un'ottima padronanza del codice lo sconsiglio.

    Il problema di fondo tuttavia è avere una preparazione minimale principalmente per rapportasi in modo tecnico, che significa esporre in modo comprensibile i propri questiti, ma anche avere gli strumenti per comprendere i suggerimenti.

    Io purtroppo, o per fortuna, non sono abituato a dare codice pronto da COPIANCOLLARE, e penso che averto fornito quei riferimenti fosse quanto di più comodo io potessi fare.
    Non chiedo di darmi il codice copiancolla ci mancherebbe altro ! ma dove andare a studiare per poter progredire nella formazione personale di programmattore
  • Re: Domanda sulla gestione di un DB in rete

    La guida in LINEA e l'HELP con spiegazione ed Esempi sono, a mio avviso, il migliore dei Libri.
    Per questo ti ho dato come riferimento il nome da digitare nel Visualizzatore Oggetti(dopo aver inserito i Riferimenti ad Office)...!
    Quello che intendevo è che ci sono aspetti di dettaglio(come l'oggetto FILEDIALOG) che è normale dover avere ragguagli... ma il come cercare fa parte di un bagaglio di base... e mi riferivo a questo
    in quanto comprendo che se :
    - non sai come cercare le informazioni
    - non sai dove cercarle nel prodotto che usi
    - non sai cosa sono i Riferimenti di Office
    - non sai come aggiungerli...
    Queste sono tutte problematiche legittime, nel senso che è normale non conoscerle per uno che inizia...ma per chi ti risponde ad una richiesta non deve essere motivo di dover fare un CORSO ONLINE per farti apprendere la risposta.
    Spero di aver chiarito il concetto senza urtare sensibilità.
  • Re: Domanda sulla gestione di un DB in rete

    @Alex ha scritto:


    La guida in LINEA e l'HELP con spiegazione ed Esempi sono, a mio avviso, il migliore dei Libri.
    Per questo ti ho dato come riferimento il nome da digitare nel Visualizzatore Oggetti(dopo aver inserito i Riferimenti ad Office)...!
    Quello che intendevo è che ci sono aspetti di dettaglio(come l'oggetto FILEDIALOG) che è normale dover avere ragguagli... ma il come cercare fa parte di un bagaglio di base... e mi riferivo a questo
    in quanto comprendo che se :
    - non sai come cercare le informazioni
    - non sai dove cercarle nel prodotto che usi
    - non sai cosa sono i Riferimenti di Office
    - non sai come aggiungerli...
    Queste sono tutte problematiche legittime, nel senso che è normale non conoscerle per uno che inizia...ma per chi ti risponde ad una richiesta non deve essere motivo di dover fare un CORSO ONLINE per farti apprendere la risposta.
    Spero di aver chiarito il concetto senza urtare sensibilità.
    Tranquillo era quello che volevo .... alla fine ci sono riuscito studiandomi bene la guida in linea , non volevo sembrare invadente nel richiedere il codice.. solo che non riuscivo a capire determinati passaggi e questo mi procurava una certa rabbia ecco qua il codice , in realta molto semplice tramite il commando DialogFilePicker
    inoltre ho avuto bisogno di includere la libreria Microsoft Object 12.0 Library

    ecco il codice


    Private Sub CommandoRicercaPath()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim vrtSelectedItem As Variant
    With fd
    If .Show = -1 Then
    For Each vrtSelectedItem In .SelectedItems
    CasellaTestoPath.Value = vrtSelectedItem
    Next vrtSelectedItem
    Else
    End If
    End With
    Set fd = Nothing
    End Sub


    Grazie del tuo tempo alex
  • Re: Domanda sulla gestione di un DB in rete

    Perfetto, ottimo approccio.

    Ora fai solo attenzione all'uso di EARLYBINDING, vale a dire l'uso esplicito preventivo dei riferimenti a Librerie esterne.
    Questa Tecnica, è veramente poco usata dagli sviluppatori, in quanto espone l'applicazione che deve essere distribuita a rischi di CRASH o NON FUNZIONAMENTO.

    L'uso delle LIB esplicite si applica in fase di sviluppo al fine di avere la disponibilità della Guida.
    In fase poi di compilazione(MDE o ACCDE) si rimuove il riferimento creando l'istanza in modalità LATEBINDING con CrateObject.
    Giusto per farti capire ti espongo un TUTORIAL che ho pubblicato:

    http://forum.masterdrive.it/microsoft-office-access-vba-23/latebinding-vs-earlybinding-46733/

    Access, come VB6 per altro offre anche la modalità avanzata di condizionare la compilazione a paremtri... ma questo è una cosa decisamente avanzata.
  • Re: Domanda sulla gestione di un DB in rete

    @Alex, tranquillo... Se il tutorial si trova altrove inserisci pure il link. Ovvio, se anche all'interno di IProgrammatori c'è un tutorial sullo stesso argomento allora sì che un pò di fastidio potrebbe darne, ma vai pure tranquillo
  • Re: Domanda sulla gestione di un DB in rete

    fonzarelli ha scritto:


    @Alex, tranquillo... Se il tutorial si trova altrove inserisci pure il link. Ovvio, se anche all'interno di IProgrammatori c'è un tutorial sullo stesso argomento allora sì che un pò di fastidio potrebbe darne, ma vai pure tranquillo
    Grazie per la precisazione, chiaramente mi sono accertato non ci fosse nello specifico, tuttavia ho preferito privatamente chiarire la posizione, mi pareva doveroso.
  • Re: Domanda sulla gestione di un DB in rete

    Figurati, anzi, grazie per aver voluto precisato Sei un ottimo esempio di utente per tutti coloro che persistono nell'andare contro il regolamento
Devi accedere o registrarti per scrivere nel forum
18 risposte