Comment forcer l'application 32 bits à utiliser un 64bit COM dll dans CreateObject?
-
29-09-2019 - |
Question
Le code suivant se comporte différemment selon si j'utilise la version 32 ou 64 bits de wscript:
Set oSQLServer = CreateObject("SQLDMO.SQLServer")
For Each o in oSQLServer.ListInstalledInstances
MsgBox o
Next
En 32 bits, il liste les instances de mon serveur 32 bits (SQL Server 2000), en 64 bits, je reçois le contenu de mon serveur 64 bits (SQL Server 2008). Je dois convertir ce code en C ++ (une application 32 bits). Mais je dois montrer les serveurs 64 bits. Comment puis-je forcer l'objet créé pour utiliser la dll 64bits et la clé de 64 bits dans le registre?
La solution 2
J'ai décidé d'utiliser SQLBrowseConnect de ODBC avec la chaîne de connexion
"DRIVER={SQL Server Native Client 10.0};".
SQLDMO est bien et mort truely, et SQLSMO est assez courte vue pour les applications gérées uniquement.
Autres conseils
Une application 32 bits ne peut pas charger une DLL 64 bits, et une application 64 bits ne peut pas charger une DLL 32 bits.