Newsgroup: it.comp.lang.visual-basic
Titolo: Errore su Windows Server2008 + DB Access

Ciao e ben tornati dalle vacanze.
Vado al sodo, sono su una macchina con sistema windows server 2008.
L'applicazione è scritta in net 2010 ed accede ad un db Access con una 
connection db As System.Data.OleDb.OleDbConnection. La stringa di 
connessione è la seguente:
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data 
Source=C:\MiaCartella\miodatabase.mdb;"
alla chiamata del metodo Open mi viene sollevata la seguente eccezione:
"The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local 
machine."
Bene allora installo il VS 2010 e vado in debug...stesso errore.
Allora insisto, creo un nuovo progetto vuoto con una sola form e un 
pulsante che fa esattamente questo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
         Dim db As System.Data.OleDb.OleDbConnection
         db = New 
System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User 
        ID=Admin;Data Source=C:\MiaCartella\miodatabase.mdb;")
         db.Open()
         db.Close()
End Sub
e funziona!!!
Dov'è l'inghippo?
Su Windows 7 o XP nessun problema.
ciao a tutti e grazie in anticipo

elmariachi ha detto questo venerdì :
zac
prima OVVIA COSA....
c'è il provider OLDB di Access nel server?
http://support.microsoft.com/kb/239114
Appurato questo....il server gira su un 64 bit?
perchè se si ....non va!...bisogna spippolare
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/45aa44dd-0e6f-42e5-a9d6-9be5c5c8fcd1/
-- 
----- Italliaaaaa 3227! -----
Là dove l'uomo scopre un minimo di ordine, immediatamente ne suppone 
troppo.
(Francesco Bacone)

Ho risolto semplicemente (si fa per dire), ricostruendo il progetto, e 
ora gira!!! Non ho parole, pensavo che solo in VB6 potessero accadere 
certe cose.

cose.
No, queste cose accadono ovunque ci sia COM.

non uso COM nel codice Net

non uso COM nel codice Net
Tu pensi di non usare COM.
Il provider Ole-DB per Jet Engine è COM.

 Il provider Ole-DB per Jet Engine ï¿œ COM.
Si vero, ma nel progetto io includo System.Data. e nel file vbprj non ci 
sono riferimenti al COM. Poi sarï¿œ il namespace Data che usa il com.
Mi sembra strano che semplicemente ricostruendo il progetto funzioni 
correttamente. E poi perchï¿œ solo su sistemi a 64 bit appare questa 
anomalia? Ad ogni modo ora funziona.

 Ad ogni modo ora funziona.
perchè il provider è vecchio è come ed è per un 32 bit....ma l'hai 
letto quel link??? ti levava ogni dubbio!...troppa fatica? :-Z
-- 
----- Italliaaaaa 3227! -----
Il coraggio ce l'ho. E' la paura che mi frega.
(Totò)

Si letto, cosa doveva chiarirmi?
che jet è vecchio e 32bit già lo sapevo.
La domanda è perchè ricostruendo il progetto funziona? mica ho cambiato 
cpu di destinazione da un progetto all'altro.
In VB6 mi capitava qualche volta che si corrompesse un progetto e 
bisognasse ricrearlo, ma in net sinceramente è la prima volta.

Dopo dura riflessione, elmariachi ha scritto :

Ti chiariva che dovresti fare un progetto a "32 bit"....
il cambiare la cpu e quant'altro erano tutte pezze!
Io non ho la sfera di cristallo e non so cosa spippoli e come....
dico solo che un "progetto" anche in net è una serie di file (spesso 
XML) che istruiscono il compilatore!
Codesta situazione mi è capitata in progetti in cui IO facevo casino 
...uscivano fuori un sacco di strani errori.
Recentemente m'è successo per un file di risorse creato che ho 
cancellato da resources: BUM errori a raffica per mille riferimenti in 
qualche file xml ancora attivi....e zoppi!
Spesso fare un nuovo progetto risolve perchè reimpostiamo tutti i file 
di configurazione a default
....spesso risolve perchè NON SAPPIAMO cosa abbiamo incasinato....e 
facendo un nuovo progetto...azzeriamo tutto compresa la procedura 
errata che sicuramente abbiamo commesso!
Nel tuo caso non lo so!
So che mi fa incazzare (a me) alquanto una cosa del genere : perchè 
significa che IO ho fatto una bischerata ....e ci può stare!
MA NON SO dove l'ho fatta! e questo è male perchè è una falla nel mio 
programma e nel mio modo di operare!
Tutto qui....io da errori del genere non penso "che schifo net"...ma 
"che cazzo combini Marco?"...
:D
-- 
----- Italliaaaaa 3227! -----
Pasquà...Pasquale Zagaria...u'fighh'Riccard
[Vieni avanti cretino (1982)
c'ho pure il video! 
http://www.martek.it/public/dblog/banfi1.swf
 ]

E' anche il mio pensiero.
Anche io parto dal presupposto di aver fatto una cavolata e che non sia 
il net a sbagliare. Però allo stato attuale delle cose  visto il livello 
raggiunto dalla Microsoft gradirei che mi dicessero qualcosa di 
più....magari anche un bel messaggio: riscostruisciti il vbprj che 
facciamo prima.

"elmariachi"  ha scritto nel messaggio 
news:4e648bd0$0$44206$4faf...@reader1.news.tin.it...

Magari chiedendosi a che  serve quella combo box nel Configuration Manager 
dove c'è scritto AnyCPU/x86/x64? :-)

...Già come ho fatto a non pensarci.
Ma perchè date sempre per scontato che chi scrive sia inetto o fannullone?
Ripeto per l'ennesima volta NON C'ERA VERSO!!!! con il vbprj vecchio 
potevo mettere qualsiasi impostazione e alla fine compilava sempre 
AnyCPU e non x86 come volevo io e di conseguenza generava l'errore 
suddetto, anche mettendo x86....ricostruisco il vbprj e funziona.