Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134

    [VB.NET - Access] Utilizzo di un file Access condiviso in applicazioni VB.NET

    Salve a tutti,
    volevo chiedere se qualcuno mi sa dire e spiegare qualcosa sull'ipotesi di utilizzare un file di access condiviso (intendo un file access che si trovi su una cartella di rete condiviso all'interno di una rete locale) come DB su cui dovrebbero effettuare query di lettura e scrittura programmi scritti in VB.NET.
    In pratica pensavo di mettere una sorta di setup nel programma in cui l'utente seleziona il file access da usare mediante OpenFileDialog in maniera da costruire la stringa di connessione. (fin qui non credo che ci saranno problemi).

    Ora immaginiamo che un numero X di utenti faccia la stessa cosa da altri PC della stessa rete, facendo puntare il proprio programma tutti allo stesso file.
    Cosa succede a questo punto? Mi spiego meglio: cosa accade se due utenti effettuano contemporaneamente 2 query? (per effettuare una query penso che vada aperta la connessione, effettuata la query e chiusa immediatamente la connessione). Access prevede nell'ipotesi della contemporaneità della richesta di query meccanismi di code? o dovrei gestire da codice la cosa effettuando ad esempio un numero N di tentativi?

    Finora ho sempre utilizzato Access come DB affiancato ad una applicazione che giri su un solo PC.
    Adesso per ampliare alcuni miei SW avevo pensato questa cosa. Purtroppo non ho idea di cosa questo voglia dire, delle implicazioni che può portare con sè e dei problemi che si potrebbero verificare (o se, semplicemente, non è affatto una cosa fattibile! )

    Attendo i vostri pareri e le vostre idee.
    Grazie a chiunque mi risponderà.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    E' possibile utilizzare Access in questo modo, purché il database non venga aperto in modalità esclusiva.

    Tuttavia, non è il massimo, in quanto gestisce le richieste concorrenti attraverso il blocco di record e, non essendo C/S, causa un traffico di rete elevato.

    Ti suggerisco di migrare ad un database di tipo client/server. Quello più "vicino" ad Access è SQL Server, ma ve ne sono tanti altri (FireBird, MySQL, ...).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134

    ...file access condiviso...

    intanto grazie per avermi risposto.

    In realtà per adesso pensavo solo a piccoli contesti, dove in genere 3-4 persone accedono allo stesso DB (ma la situazione potrebbe crescere fino a contesti di 20 utenti anche), per cui forse potrei testare la cosa. Tra l'altro l'applicazione in questione non richiederebbe un'interazione intensiva e continua col DB.
    Per quanto riguarda passare ad altri DB sicuramente sarebbe la scelta migliore a livello di qualità, performance, ecc. Ma il bello di access è che basta consegnare il file mdb al cliente (e in questo caso i clienti sarebbero persone che usano il PC come strumento, non esperti di informatica) mentre cn DB tipo Firebird c'è l'installazione e poi l'importazione del DB (io stesso non saprei come fare allo stato attuale.

    Grazie ancora.
    Saluti

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Re: ...file access condiviso...

    Originariamente inviato da arthas83
    In realtà per adesso pensavo solo a piccoli contesti, dove in genere 3-4 persone accedono allo stesso DB[...]
    Quando parti con 3/4 utenti, si fa presto ad aggiungerne altri...

    Originariamente inviato da arthas83
    Per quanto riguarda passare ad altri DB sicuramente sarebbe la scelta migliore a livello di qualità, performance, ecc. Ma il bello di access è che basta consegnare il file mdb al cliente (e in questo caso i clienti sarebbero persone che usano il PC come strumento, non esperti di informatica) mentre cn DB tipo Firebird c'è l'installazione e poi l'importazione del DB (io stesso non saprei come fare allo stato attuale.
    L'unica cosa che devi fare con gli altri DB è installare il server. Nel caso di FireBird, ad esempio, è sufficiente avere una DLL (che è il client) presente nella macchina dell'applicazione per poter accedere al server, facendo uso del provider ADO.NET che altro non è che una libreria aggiuntiva da distribuire assieme all'applicazione. Non c'è nulla di più o di meno da fare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    citaz. <<L'unica cosa che devi fare con gli altri DB è installare il server. Nel caso di FireBird, ad esempio, è sufficiente avere una DLL (che è il client) presente nella macchina dell'applicazione per poter accedere al server, facendo uso del provider ADO.NET che altro non è che una libreria aggiuntiva da distribuire assieme all'applicazione. Non c'è nulla di più o di meno da fare.>>

    sì questo sì... no intendevo un'altra cosa... il database vero e proprio. Le tabelle.
    dai mi spiego ancora meglio... aggiungo un dettaglio al contesto di cui parlo io
    Ho un'applicazione che vendo principalmente ad uffici tecnici di comuni. In pratica in questi ambienti capita di trovare ad esempio i pc dei dipendenti già configurati che sfruttano Hard-disk RAID su server. Quindi loro salvano i loro dati normalmenti lì. 99% dei casi non ho modo di parlare con chi gestisce il server (spesso è un incaricato esterno). Quindi installare roba direttamente sul server può risultare difficile (e quindi poi importare tabelle, ecc). Con access avrei la possibilità di dire agli utenti finali di dire un concetto ke è tipo così:
    "mettete questo MDB dove volete, in un percorso a cui tutti potete accedere, selezionatevelo dal programma come sorgente dati e lavorate"...

    Capisco non sia forse granchè come soluzione, però è semplice vista anche l'ottica dell'ambiente in cui dovrei muovermi.
    In ogni caso penserò all'alternativa da te suggerita che mi sembra ovviamente la più valida.
    grazie.
    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.