Denny Biasiolli Website

Compilare progetti con ADODB in VB6 con Windows 7 SP1 - Soluzione

Mar 3, 2011

Tra ieri e oggi in ufficio mi sono imbattuto in uno scomodo problema che mi ha tenuto arenato diverse ore nel cercare possibili soluzioni su internet.
Compilavo da Windows 7 SP1 un progetto con riferimenti a ADODB; funzionava tutto alla perfezione ma quando lanciavo il progetto da un PC con Windows XP mi veniva restituito un errore (Errore 13 - Tipo non corrispondente).
Soltanto grazie ad un mio collega sono riuscito a risolvere il dilemma.

Ambiente di partenza:

  • Sistema operativo:
        Windows 7 - (32 e 64 bit)
  • Ambiente di sviluppo:
        Visual Basic 6 SP6 (VB6 SP6)
  • Componente "incriminato":
        Microsoft ActiveX Data Objects 2.8 Library (ADODB, msado27.tlb, msado28.tlb e msado15.dll)
  • Errore riscontrato:
        Errore 13 - Tipo non corrispondente

Dopo aver passato la giornata a cercare possibili fix o workaround abbiamo scoperto che basta eseguire alcuni semplici passaggi:
  • Posizionarsi sulla cartella
        %ProgramFiles%\Common Files\System\
    Nota: per versioni di windows a 64 bit la cartella sarà
        %ProgramFiles(x86)%\Common Files\System\
  • Impostare i permessi alla cartella "ado\" in modo da esserne il proprietario e avere permessi di lettura/scrittura
  • Aprire la cartella "ado\"
  • Rinominare il file msado27.tlb in msado27_new.tlb
  • Rinominare il file msado28.tlb in msado28_new.tlb
  • Cercare il file "msado27.tlb" presente su un pc con Windows XP SP3 (o scaricarlo da questo link) e copiarlo nella cartella "ado\" di Windows 7 SP1
  • Duplicare il file "msado27.tlb" presente in Windows 7 SP1 chiamandolo "msado28.tlb"
  • Riavviare il sistema

A questo punto possiamo compilare tranquillamente i nostri progetti senza più preoccupazioni!
Spero di esservi stato utile, se avete segnalazioni o commenti potete inserirli qui sotto, saranno ben accetti!

Contacts

DB di Denny Biasiolli
Corso Giacomo Matteotti, 24
12038 Savigliano (CN) - Italy
P.IVA IT03918020045

Need to get in touch with me? No problem! Just shoot me an email. I'm always happy to chat about life, technology, or anything in between. And if you're feeling really adventurous, you can even try sending a carrier pigeon. Just don't be surprised if it gets lost on the way.