Discussione:
Stringa di connessione
(troppo vecchio per rispondere)
Cricca
2006-12-13 17:03:01 UTC
Permalink
Salve a tutti!
Ho un db in Access che voglio far vedere, tramite ODBC, ad un mio programma
scritto in C#.
Per semplicità il file Access (MiaProva.mdb) l'ho messo in C:\
Poi sono andato sul pannello di controllo, Strumenti di amministrazione,
Gestione ODBC e qui ho registrato il mio db sotto ODBC (per semplicità dirò
che il db si chiama MiaProva e fa riferimento al file MiaProva.mdb).
Segnalo che il mio db è particolarmente semplice e non è protetto da
password.
Il mio problema ora è: quale stringa di connessione utilizzo dal mio
programma C#?
Per trovare una risposta ho consultato il sito
http://www.connectionstrings.com/
Sul sito indicato il suggerimento è quello di usare:

Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

Ho provato, ma a run-time mi viene ritornata un'eccezione che mi dice:

Keyword not supported: 'driver'.

Sottolineo che la stringa lo riportata nel mio codice con un copia incolla,
dopodiché ho corretto solo il nome del mio db.
Quindi sono da escludere problemi tipo:
- Maiuscole che sono scritte in minuscole
- Spazi di troppo o mancanti
- ecc...

Che spiegazione può esserci?
Grazie
Cricca
PBsoft
2006-12-13 17:50:44 UTC
Permalink
Post by Cricca
Per semplicità il file Access (MiaProva.mdb) l'ho messo in C:\
Poi sono andato sul pannello di controllo, Strumenti di
amministrazione,
Gestione ODBC e qui ho registrato il mio db sotto ODBC (per semplicità dirò
che il db si chiama MiaProva e fa riferimento al file MiaProva.mdb).
Segnalo che il mio db è particolarmente semplice e non è protetto da
password.
Il mio problema ora è: quale stringa di connessione utilizzo dal mio
programma C#?
Per trovare una risposta ho consultato il sito
http://www.connectionstrings.com/
Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
Keyword not supported: 'driver'.
Nella stringa di connessione che hai riportato il nome del file è sbagliato,
(magari lo sapevi già, ma alle volte le cose banali sfuggono).

Comunque, prima dici di avere impostato una sorgente dati ODBC tramite un
DSN, ma poi utilizzi la connessione DSN-less.
Se vuoi utilizzare il DSN, devi utilizzare la seguente sintassi per la connessione:

oConn.Open "DSN=mySystemDSN;Uid=myUsername;Pwd=myPassword"

Se vuoi utilizzare una connessione DSN-less, allora la sintassi è quella
che hai ricordato anche tu:

oConn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\somepath\mydb.mdb;"

Se scegli questa seconda strada, puoi anche utilizzare OLE DB, che dovrebbe
anche essere più performante.

Le stringhe di cui sopra sono state recuperate al seguente indirizzo: http://www.carlprothman.net/Default.aspx?tabid=81

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution
Cricca
2006-12-14 16:53:07 UTC
Permalink
Ovviamente per brevità non sono stato a descrivere tutti i tentativi che
avevo già percorso.
Comunque
1. Prima di lanciare il programma ho verificato che il nome del file fosse
quello corretto.
2. Poi ho provato con il file accesso registrato sotto ODBC a usare la
stringa di connessione sia indicando il path, sia non indicandolo.
3. Poi ho eliminato la registrazione del file access sotto ODBC e ho
riprovato ad usare la stringa di connessione sia indicando che non indicando
il path.

In tutti i casi provati il risultato non cambia. Secondo me c'è qualcosa di
ben diverso dalla sintassi della stringa di connessione che mi impedisce di
aprire la connessione con il mio db in access, ma non ho la più pallida idea
di cosa possa essere.
Devo dire che mi sto demoralizzando un po'.
PS: Possibile che nessuno realizzi programmi con connessioni a db access?
Possibile che su internet non si riesca a trovare un esempio sufficentemente
esaustivo che mi risolva l'inghippo?
Quando ci sarò riuscito, prometto che posterò la soluzione.

Ciao
Cricca
Cricca
2006-12-14 16:57:48 UTC
Permalink
Aggiungo!
Tutte le volte, in tutti i casi, nei vari tentativi effettuati il messaggio
di errore è sempre lo stesso
Keyword not supported: 'driver'.
Sergio MAZZA
2006-12-15 16:57:04 UTC
Permalink
Post by Cricca
Ovviamente per brevità non sono stato a descrivere tutti i tentativi che
avevo già percorso.
Comunque
1. Prima di lanciare il programma ho verificato che il nome del file fosse
quello corretto.
2. Poi ho provato con il file accesso registrato sotto ODBC a usare la
stringa di connessione sia indicando il path, sia non indicandolo.
3. Poi ho eliminato la registrazione del file access sotto ODBC e ho
riprovato ad usare la stringa di connessione sia indicando che non indicando
il path.
In tutti i casi provati il risultato non cambia. Secondo me c'è qualcosa di
ben diverso dalla sintassi della stringa di connessione che mi impedisce di
aprire la connessione con il mio db in access, ma non ho la più pallida idea
di cosa possa essere.
Devo dire che mi sto demoralizzando un po'.
PS: Possibile che nessuno realizzi programmi con connessioni a db access?
Possibile che su internet non si riesca a trovare un esempio
sufficentemente
esaustivo che mi risolva l'inghippo?
Quando ci sarò riuscito, prometto che posterò la soluzione.
Ciao
Cricca
Non so' se questo può aiutarti:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=419223&SiteID=1

Ciao.
--
Sergio MAZZA
Continua a leggere su narkive:
Loading...