PDA

View Full Version : [ODBC | .NET | Windows Vista 64 bit] Connessione a provider database DNS-less


amedeoviscido
31-01-2008, 14:44
Ciao ragazzi, sto impazzendo da un paio d'ore con questo problema, sono bloccato...

Ho una applicazione 32 bit sviluppata in Visual Basic .NET 2005, che si appoggia al database PostgreSQL con una connessone DNS-Less. Tutto ok sia con Windows XP che con Windows Vista, ma il problema si pone con i sistemi a 64 bit (sia XP che Vista).

In pratica, il provider a 32 bit viene installato, perché se controllo nella cartella di sistema C:\Windows\SysWOW64\ c'è il file odbcad32.exe, che mi trova correttamente i driver; volendo potrei creare anche dei DNS di sistema per provare.

Il fatto è che il mio programma si connette direttamente, senza DNS!!! Come posso fare? Devo impostare un DNS di sistema che si chiama come il driver??? Non lo so... ditemi voi!!!

amedeoviscido
01-02-2008, 16:37
Per quei pochi interessati...

Sembrerebbe che i driver ODBC a 64 bit siano incompatibili coi driver a 32 bit; anche se è possibile installare un DSN a 32 bit comunque: farò dei test e vi farò sapere meglio.

amedeoviscido
02-02-2008, 11:14
Allora, risolto... se vi troverete un giorno la mia stessa problematica e sfrutterete questo trucchetto, voglio quanto meno una PIZZA!!!

Ecco il perché del problema: la piattaforma .NET 2.0, come sapete, è platform-independent. Se fate partire una vostra applicazione su un sistema a 64 bit, questa verrà compilata al volo ed eseguita a 64 bit, anche se è stata sviluppata su un sistema a 32 bit. Il problema è che, se eseguita a 64 bit, i driver ODBC cercano un provider a 64 bit: questo è impossibile visto che i driver di PostgreSQL, al momento, sono solamente a 32 bit !!!

Come risolvere... basta fare il publish della applicazione specificando, nelle opzioni di compilazione (pulsante avanzate) la piattaforma di destinazione: x86 e non AnyCPU !!!

Mamma mia e che ci è voluto...