PDA

Visualizza la versione completa : [VB.NET] Utilizzo di un database Access condiviso


Veronica80
12-11-2009, 11:32
Ciao ragazzi volevo chiedervi una cosa! Io vorrei che il database del mio software fosse condiviso in rete! in modo che se io aggiorno dal mio pc anche chi apre il software sugli altri pc della rete vedano le modifiche ai dati.

A tal proposito vi chiedo:
Come cavolo si fa? :D

In primis (partendo dal presupposto che i nome dei pc ecc in rete posson cambiare dovrei mettere un bottone per la ricerca in rete del db? Tipo sfoglia?

C'è qualche modo per rilevare l'accesso esclusivo? Cioè se io apro il programma per prima e qualcuno lo apre dal suo pc mentre lo uso io lo avvisa che è in uso da me e non può usarlo.

Non riesco a spiegarmi bene è + facile a immaginarsi che a dirsi!

Spero mi abbiate capito!

ps: Per aver il db in rete basta che lo condivida e dal programma metta l'indirizzo di rete vero?

Grazie a tutti :* :popcorn:

giusto.moreno
12-11-2009, 11:49
Ciao,
dipende dal db che utilizzi, ci sono diversi modi di condivisione.

Veronica80
12-11-2009, 12:12
è un db Access e ci accedo tramite codice ADO ;)

giusto.moreno
12-11-2009, 13:09
Guarda qui:

http://www.connectionstrings.com/access

trovi diverse soluzioni, se i dati che andrai a gestire nel tuo database sono molti, o di particolare importanza ti consiglio di passare a SQL Server, la versione Express è gratuita.

Qui trovi molte info:

http://www.ugiss.org/Content/Article/SQL-Server-2008-Express.aspx

Max Mercury
12-11-2009, 13:11
Con un DB access hai poche possibilità di gestire l'accesso esclusivo ai dati.
Non credo infatti che access implementi alcun tipo di lock.
Dovresti fartelo da sola a livello di codice, ma penso che sia ancor più complesso
che passare da Access a SQLServer

Veronica80
12-11-2009, 16:02
a me di sql server nn spaventa tanto l'utilizzo (tenete conto che con ADO uso tutto via codice quindi anche su access gestisco tutto con comandi SQL) è + che altro la distribuzione!

Non saprei come inserirlo nel setup ecc! Con access copi il db e installi i data controls e via...con sql server è ignoto x me!

Veronica80
12-11-2009, 16:23
tenete conto che sto programma lo useranno 2 max max 3 persone quindi non c'è un trafficon intenso! Se non si può accedere esclusivamente pazienza si coordinano loro :D

io vorrei solo sapere come accedere a un db acces in rete!

Nella stringa:


Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;

che mi pare sia quella ch eserve a me non capisco come gestire la cosa visto che il percorso è sempre su C:\

giusto.moreno
12-11-2009, 16:35
A questo punto puoi utilizzare una connessione ODBC, nella stringa di connessione ADO ti basterà specificare "DSN=[nome connessione odbc]"

Veronica80
16-11-2009, 12:15
Originariamente inviato da giusto.moreno
A questo punto puoi utilizzare una connessione ODBC, nella stringa di connessione ADO ti basterà specificare "DSN=[nome connessione odbc]"

Non ho idea di come fare sta ODBC! :D

Ora vedo di documentarmi!

Grumpy
16-11-2009, 15:54
Originariamente inviato da Veronica80
... non capisco come gestire la cosa visto che il percorso è sempre su C:\
Il percorso è sempre C:\ sul computer che ospita fisicamente il file di database.
Come prima cosa ti consiglio di spostarlo in una cartella diversa dalla radice C:\ . Tra l'altro con Windows Vista questo è quasi impossibile e con XP fortemente sconsigliato.
Poi dovrai condividere questa cartella nell'ambito della rete locale. Gli altri computer potranno connettersi (anche automaticamente all'avvio) a questa cartella e la potranno "vedere" o assegnandole una diversa lettera (per esempio Z: ), o specificando il percorso di rete nella forma \\nomeserver\nomecartella.
Infine dovrai fare in modo che il tuo programma all'avvio legga (per esempio da un file di testo) il percorso che gli permette di connettersi al database, ed utilizzare questo percorso nella stringa di connessione.

Loading