Newsgroup: it.comp.lang.visual-basic
Titolo: ACCESSO A DATABASE IN RETE

Ciao,
avrei un problemino da sottoporre a chi ha voglia e volontà di rispondermi.
Devo aprire da VB5 un database access e consentire a qualsiaisi client
di poterlo visualizzare e modificare, aggiornare e inserire nuovi record.
Ho creato il database condiviso in access e posizionato sulla macchina UNO
poi dalla DUE devo aprirlo. Qual'e il giusto procedimento evitando anche
di scrivere qualche chilometro di codice ?
La rete  e' windows.
Ciao e grazie in anticipo.
Elisa

 La rete  e' windows.
elisa ciao, ti avevo risposto il 25 ma forse e' andata persa:
dim db as database
set db = opendatabase("\\nome_server\nome_cartella\nome_db.mdb")
nel tuo caso, direi
dim db as database
set db = opendatabase("\\uno\nome_cartella\nome_db.mdb")
credo che debba essere condivisa la cartella in cui metti il db.
cosi' va ? fa' sapere.
ciao, a.

Il consiglio dell'altro ragazzo che ti ha risposto era giusto, ma ti
consiglio di utilizzare ADO quando utilizzi un database in rete anzichč
utilizzare DAO. Questo perchč ADO č piů ottimizzato per cose del genere
Prima di tutto creati un DSN nel pannello di controllo (Origini Dati ODBC
32bit)
e questo č il codice:
dim adoCon as new ADODB.Connection
dim adoRst as new ADODB.Recordset
adoCon.Open "DSN=Prova"
adoRst.CursorLocation = adUseClient 'Questo ti serve se vuoi che il metodo
recordcount ti funzioni
adoRst.Open SELECT * FROM Tabella1",adoCon
adoRst.Close
adoCon.Close
set adoRst = nothing
set adoCon = nothing


  Subject: Re: CREAZIONE DSN	
E' la prima volta che provo a progettare in rete.
Puoi darmi indicazioni sul come procedere per creare il DSN ?
Apri il pannello di controllo e carica "Origini Dati ODBC (32 bit)"
vai su DSN di sistema (se vuoi che sia visibile dat tutti gli utenti
altrimenti DSN utente). Clicca su Aggiungi e seleziona Microsofr Access
Driver (se ne vuoi utilizzare uno Access). Adesso Fine.
Nella maschera che ti è apparsa alla voce "Nome origine dati" metti un nome
univocoo che verrà poi utilizzato dal tuo programma VB (es. FATTURE).
Quindi clicca sul tasto seleziona per selezionare il percorso del database
(che quindi potrà essere anche su di un altro computer).
Tutto qui.
Nel Visual Basic devi fare ciò:
Prima di tutto includi i riferimenti "Microsoft Active Data Object 2.x"
Dichiara due variabili una per la connessione e l'altra per il recordset
Dim adoCon as New ADODB.Connection 'Questa è la variabile x la connessione
Dim adoRst as New ADODB.Recordset 'Questa è la variabile x il recordset
per aprire il database:
adoCon.Open "DSN=FATTURE" 
adoRst.CursorLocation = adUseClient 
Questo lo devi inserire solo se ti serve sapere quanti record contiene la
select che farai in seguito, altrimenti la proprietà RecordCount sarà
sempre -1
Quindi devi effettuare la select vera e propria. Ad esempio:
adoRst.Open "SELECT * FROM Clienti",adoCon
dove adoCon è la connessione che hai aperto.
Adesso l'utilizzo è simile a DAO. Quindi puoi utilizzare
While not adoRst.EOF
adoRst.Movenext
Wend
Quindi puoi chiudere il recordset e il database. RICORDATI di mettere a
nothing gli oggetti che hai creato altrimenti ogni volta che esci da questa
procedura avrai dei riferimenti pendenti che ti faranno diminuire la
memoria disponibile. Questa è una regola che vale per tutti gli oggetti e
non solo per ADO.
adoRst.Close
adoCon.Close
set adoRst = Nothing
set adoCon = Nothing
Grazie.
Elisa
Di niente. Quando vuoi.
Andrea
P.S.
Volevo risponderti via e-mail, ma non c'e' stato verso.....