Newsgroup: it.comp.lang.visual-basic
Titolo: Mdac_Typ e ADO

Dall macchina di sviluppo ho messo nei riferimenti ADO 2.6 (msado15.dll,
versione 2.60.6526.0), creo il Setup e mi include Mdac_Typ.exe
(2.50.4403.12). Installo su altra macchina e va tutto bene. Apro VB su
quest'ultima macchina e mi trovo solo il riferimento a ADO 2.5 (msado15.dll,
2.50.4403.9). Il programma funziona regolarmente, ma ho timore che queste
versioni "confuse" facciano pasticci. Mi date una dritta, per favore?
Ho letto che msadoXX.TLB serve a "forzare" l'uso di una certa versione di
libreria ADO anche se sulla macchina di sviluppo ne è installata (e
disponibile) una più recente (con estensione DLL), ma non ho ben capito
quale delle due si debba dichiarare (entrambe non ci stanno perchè hanno
nome uguale) per garantirsi il funzionamento su altre installazioni già
setuppate.
Grazie.

setuppate.
Riferisciti alla versione di ADO, che sai di poter / dover supportare,
tramite la type library opportuna.
Vedrai che andra' tutto bene :-)
-- 
ciao, hal

 Vedrai che andra' tutto bene :-)
Intanto, grazie Hal. Ho compreso ... a metà: Se metto nei riferimenti del
mio progetto di sviluppo una TLB 2.5 (e non una DLL 2.6), il file
Mdac_Typ.exe non viene incluso nel setup (non trova riferimenti alle
dipendenze), giusto?
E, presumibilmente, il TLB, pur incluso, creerà problemi (quantomeno
segnalazioni, spero che non si blocchi) in fase di setup, ri-giusto?
Insomma, se sulla macchina di sviluppo ho una DLL versione 5000, ma non
voglio distribuirla anche per non dovermi adeguare a tutti i costi alla
eventuale nuova sintassi d'uso, come posso dichiarare sempre la 2.5
(ovviamente, suppongo, facendo riferimento alla 2.5 TLB e non alla 5000 DLL)
e ottenere un file CAB contenente anche il giusto Mdac_Typ? Se mi rispondo
dicendo che in questo caso devo tenermi il mio Mdac_Typ separato, magari con
nome diverso per evitare che venga coperto con eventuali nuove versioni, da
setuppare a manina e separatamente dal setup normale, dico una sciocchezza?
Grazie.

e ottenere un file CAB contenente anche il giusto Mdac_Typ? 
Per sicurezza conservo in directory separate i vari mdac_typ di ogni
versione, oltre a dcom95.exe (obbligatorio per installare ADO su windows 95)
e a dcom98.exe (per windows 98, ma solo se l' applicazione usa DCOM).
Occorre non fare upgrade avventati sul pc dell' utente perche' potrebbero
verificarsi problemi in caso di versioni molto recenti di MDAC contro
SQL Server 6.5 o anche 7 (specie se in cluster). Esistono comunque degli
strumenti per ovviare al problema.
Il Jet Engine, altro esempio,  e' compreso fino alla 2.5.
Insomma, per non saper ne' leggere ne' scrivere, una volta accertata
una configurazione funzionante per una tipologia di utenti, la metto
sotto Source Safe (si', anche i binari).
-- 
hth, hal


Sacrosanto.. :-) ADO 2.5.tlb fa sempre e in ogni caso riferimento a
msado15.dll
Ciao
 valter

 msado15.dll
Ciao Valter, ma anche ADO 2.6 (DLL) fa riferimento a msado15.dll, è questo
che mi manda in totale confusione, è questo il motivo del mio post iniziale.
E non ho ancora ben capito.

 ha scritto nel messaggio
news:rAMn8.71744$%g7.23...@twister2.libero.it...

Ho perso traccia del motivo iniziale del  post, comunque :
TUTTE LE VERSIONI DI ADO usano msado15.dll, ogni
versione di MDAC naturalmente, aggiorna la dll in questione
con le nuove funzionalità del release ( ad esempio gli oggetti
Stream e Record, sono stati resi disponibili dalla versione
MDAC 2.5 ).
Inoltre, ogni versione del SO ha, nativa, la sua versione di MDAC
( addirittura IE ha dei componenti MDAC più leggeri, privi di
providers e drivers vari ).. tanto per capirci con un esempio :
Windows 2000        ==> MDAC 2.5
Windows 2000 SP1 ==> MDAC 2.5 SP1
Windows 2000 SP2 ==> MDAC 2.5 SP2
Windows XP           ==> MDAC 2.7
un discorso a parte per MDAC 2.6 che installa la stessa versione dei
componenti
utilizzata da SQL Server 2000. Insomma o installato a parte o tramite il SO,
su ogni PC dove risiede una versione di Windows, è presente il modello di
accesso
ai dati di zio Bill ( quel gran 'cornuto con le prove', la categoria
peggiore..)
Tengo subito a precisare, per non fare la figura del 'secchione', che tutte
queste informazioni non sono frutto di annose ricerche, ma, per una volta
tanto,
sono in bella mostra sulla download-page di Microsoft Universal Data Access
dove, tra l'altro, trovi un simpatico giocarello, il "Component Checker",
( free!! That's incredible..) che ti aiuta a determinare quale versione di
MDAC
è installata sul tuo PC ( e/o su quello del cliente ). Ma tutte queste cose
sicuramente
le sai già, veniamo a quelle TLB che ti rovinano il sonno :-))
Ogni volta che installi una versione più recente di MDAC, le vecchie
versioni non
vengono completamente eliminate, sia perchè la nuova msado15.dll che cambia
di versione include tutte le funzionalità precedenti, sia perchè hai la
possibilità di
continuare ad usare il modello oggetti di ADO di preferisci, grazie alle
famigerate
TLB o Librerie dei tipi.
Tanto per farti un esempio, se hai installato MDAC 2.7, tra i riferimenti
del tuo
progetto potrai selezionare a scelta :
Microsoft ActiveX Data Objects 2.7 Library ( ADO 2.7 ==> msado15.dll )
Microsoft ActiveX Data Objects 2.6 Library ( ADO 2.6 ==> msado26.tlb )
Microsoft ActiveX Data Objects 2.5 Library ( ADO 2.5 ==> msado25.tlb )
Microsoft ActiveX Data Objects 2.1 Library ( ADO 2.1 ==> msado21.tlb )
Microsoft ActiveX Data Objects 2.0 Library ( ADO 2.0 ==> msado20.tlb )
e così via a scalare... insomma se referenzi l'ultima versione di MDAC
installata,
usi esplicitamente msado15.dll, per le versioni precedenti entrano in ballo
le TLB.
Selezionando una qualsiasi delle TLB, farai riferimento ad una versione
precedente all'ultima versione di ADO installata sul tuo PC , magari perchè
non ti importa delle nuove funzionalità o per motivi tuoi.. ma msado15.dll
lavorerà sempre.. sottobanco, solo in maniera..light..:-)
Ciao
 Valter


Grazie Valter, completo ed esaustivo.