Newsgroup: it.comp.lang.visual-basic
Titolo: Connessione ADO

Mi sono bloccato!
devo connettere un'applicazione ad un database posto in un server in una
rete locale.
Utilizzando ADO e il programma di amministrazione di Microsoft ODBC sono
riuscito a connettere l'applicazione mediante dsn utente che richiama il
database nel server.
Fin qui tutto bene, ma se voglio far girare l'applicazione su client
differenti e non volendo modificare ogni volta il dsn utente su ogni
macchina volevo modificare la ConnectionString affinchè il programma si
collegasse al server senza nome fonte dati.
Qui nascono tutti i problemi, non vuole saperne di collegarsi!
Questa è la stringa:
.ConnectionString = "driver={Microsoft Access Driver
(*.mdb)};server=server;database=c:\db1.mdb"
dove server è il nome del server su cui risiede il database
c:\db1.mdb è il reale percorso e nome del database
Qualcuno sa dirmi dove sbaglio? l'Help in linea non mi aiuta granchè
Può essere un errore di sintassi? ho provato a racchiudere il percorso del
database fra apici, virgolette e parentesi senza alcun risultato.
Grazie in anticipo a chiunque possa darmi un consiglio, anche solo propormi
un tentativo di risoluzione del problema
Maurizio
hil...@tin.it

Qualcuno sa dirmi dove sbaglio?
Se scrivi C:\ i client non troveranno mai il database.
Senza entrare nel merito della costruzione della stringa di
connessione (con access attraverso DAO ho nulla pratica)
il percorso deve essere 
"\\nomeserver\nomecondivisione\percorsofileaccess\db1.mdb"
-- 
hth, hal

 c:\db1.mdb è il reale percorso e nome del database
C:\db1.mdb
è il percorso che sul server, ma in rete il percorso
sarà \\nomeserver\nomecondivisione\percorso....\db1.mdb
se condividi il disco c: del server con il nome di condivisione
disco_c
io creerei la stringa:
ConnectionString = "driver={Microsoft Access Driver
(*.mdb)};database=\\nomeserver\disco_c\db1.mdb"}
e non userei il nome del server.
    ditemi se dico cavolate
                                                danilo

Grazie ad entrambi, provo subito e vi do una risposta
Maurizio

Ho provato con queste stringhe senza successo:
cnn.ConnectionString = "driver={Microsoft Access Driver
(*.mdb)};database=\\Server\Server(C)\db1.mdb"
cnn.ConnectionString = "driver={Microsoft Access Driver
(*.mdb)};server=Server;database=\\Server\Server(C)\db1.mdb"
cnn.ConnectionString = "driver={Microsoft Access Driver
(*.mdb)};server=Server;database=Server(C)\db1.mdb"
Se avete altri suggerimenti sono bene accetti. Continuerò a provare e in
caso di successo vi farò sapere
Maurizio

Giocando un pò con il Data Enviroment di VB ho trovato la stringa corretta
per connettere il database remoto senza usare un dsn utente
ConnectionString="DBQ=\\server\server(c)\db1.mdb;DefaultDir=\\server\server(
c);Driver={Microsoft Access Driver (*.mdb)}"
dove server è il nome del server
server(c) nome condivisione disco c del server
db1.mdb database nel server
è possibile inserire in successione tutta una serie di ulteriori parametri,
ma questa è l'essenziale per funzionare
Maurizio

caso di successo vi farò sapere
Ti mostro un trucchetto che e' l' unico caso in cui uso l' adocontrol ;-)
Apri un form di prova e gli inserisci un adocontrol.
Sul menu contestuale del controllo scegli Properties: ti si aprira'
un dialogo con un tab.
Nota il bottone in fondo al primo tab: ti fa partire lo wizard per costruire
la connection string.
Nel mio caso, ad esempio, mi ha prodotto la seguente stringa:
"Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;" & _
                           "Data Source=I:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB"
Selezioni la stringa ottenuta e te la copi nel progetto vero :-)
-- 
hth, hal