Newsgroup: it.comp.lang.visual-basic
Titolo: [?] [ADO] Aprire un database con password e file MDW

Salve, sto cercando di aprire un database protetto da password (che conosco)
e che usa un file mdw per l'autenticazione degli utenti.
...purtroppo non ci riesco :)
Per la connessione uso il seguente codice (snipet del sito comune)
//--------------------------------------
Dim CONN as ADODB.Connection
CONN.Provider = "Microsoft.Jet.OLEDB.4.0"
CONN.ConnectionString = "Data Source=d:\database.mdb;User ID=Login
DB;Password=Passwd DB;"
CONN.ConnectionTimeout = 60
CONN.Mode = adModeReadWrite
CONN.CursorLocation = adUseServer
CONN.Properties("Jet OLEDB:Database Password").Value = "APL"
CONN.Open
//------------------------------------------------
l'errore e' del Jet DBE:
-
2147217843
Impossibile avviare l'applicazione. Il file di informazioni sul gruppo di
lavoro e' mancante o aperto in modo esclusivo da un altro utente.
Penso quindi che mi manchi un qualche parametro per specificare il file del
gruppo di lavoro da usare (che e' nella stessa dir del database).
Aiuuuuto :)
Grazie mille a tutti ^_^
See Ya
--
---
See Ya

 DB;Password=Passwd DB;System database=d:\pippo.mdw"
leggi l'ultima riga
--
Salutoni
Sergio

Innanzitutto grazie per la risposta rapida ^_^
Nuovo codice:
    ' Separo la stringa di connessione per comodita'
   StrConness = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Password=Password;User ID=Login;" & _
                "Data Source=d:\database.mdb;" & _
                "System database=d:\Security.Mdw"
   CONN.Provider = "Microsoft.Jet.OLEDB.4.0"
   CONN.ConnectionString = StrConness
   CONN.ConnectionTimeout = 60
   CONN.Mode = adModeReadWrite
   CONN.CursorLocation = adUseServer
   CONN.Properties("Jet OLEDB:Database Password").Value = "APL"
   CONN.Open
Tuttavia, mi ritorna lo stesso identico errore...
Il file d:\security.mdw e database.mdb esistono, non sono di sola lettura e
si aprono perfettamente usando access con la giusta cmdline.
Sono quasi disperato :)
--
See Ya

 Tuttavia, mi ritorna lo stesso identico errore...
uhm... non ho mai usato la properties della connessione..., quando devo
utilizzare la password del database la metto direttamente nella stringa di
connessione, ma non ho mai combinato password + file di gruppo...
Prova comunque a fare:
    StrConness = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Password=Password;User ID=Login;" & _
                 "Data Source=d:\database.mdb;" & _
                 "System database=d:\Security.Mdw;" & _
                 ""Jet OLEDB:Database Password=APL"
nelle stringhe di connessione che uso di solito (ammetto: generate con
l'autocomposizione del controllo adodc e poi copiate) c'è sempre il parametro
"Persist security info=False", ma non ho ben presente la sua funzione :-)
--
Salutoni
Sergio

 sua funzione :-)
Dal nome _PRESUMO_( ma attendo smentite ) che si riferisca alla capacità
di ADO di rendere persistenti le informazioni di sicurezza e di non
"perderle"
tra un accesso e l'altro.
Ma, ripeto, è una _supposizione_.
Andrea

 sua funzione :-)
Beh, la connectionstring non è statica.
Ossia, tu imposti:
Ccn.Connectionstring="Ciao Ciao"
poi la vai a leggere dopo esserti connesso, e ADO potrebbe averla modificata
pesantemente, inserendo dei parametri che avevi impostato a parte, o
rimuovendo le informazioni di protezione (per evitare che restino in qualche
modo disponibili dopo essersi connessi).
Con quel parametro, tu specifichi se vuoi che le informazioni di sicurezza
rimangano o meno salvate nella connectionstring.
Ad esempio, collegandosi ad un MSDE, se cade la connessione (ad esempio
perchè si stacca il filo di rete), alla riconnessione della rete dovresti
specificare nuovamente la connectionstring originale, altrimenti la password
è 'sparita' dalla stringa.
In realtà, non ho mai capito bene perchè con certe combinazioni di SqlOleDb,
Sistemi Operativi, MSDE o Sql-server, 7.0 o 2000, ignora l'opzione, mentre
con altre combinazioni rispetta l'opzione.
Io, per tranquillità, mantengo sempre in una variabile la connectionstring
originale, e prima di ogni riconnessione torno ad impostare
cc.connectionstring al valore iniziale.
Ciao
Alberto

[The DeerBear] scrisse:

Supposta esatta... :-)
questo spiegha una cosa che mi è accaduta proprio ieri...
Rigrazie
--
Salutoni
Sergio